此時(shí)文件讀寫應(yīng)該寫成同步,否則兩個(gè)異步讀在開關(guān)文件上會(huì)沖突
在網(wǎng)站制作、成都網(wǎng)站制作中從網(wǎng)站色彩、結(jié)構(gòu)布局、欄目設(shè)置、關(guān)鍵詞群組等細(xì)微處著手,突出企業(yè)的產(chǎn)品/服務(wù)/品牌,幫助企業(yè)鎖定精準(zhǔn)用戶,提高在線咨詢和轉(zhuǎn)化,使成都網(wǎng)站營銷成為有效果、有回報(bào)的無錫營銷推廣。成都創(chuàng)新互聯(lián)公司專業(yè)成都網(wǎng)站建設(shè)10年了,客戶滿意度97.8%,歡迎成都創(chuàng)新互聯(lián)客戶聯(lián)系。
[img]javascript沒有多線程,所以也不存在多線程同時(shí)運(yùn)行的說法。平時(shí)寫代碼的時(shí)候需要考慮盡量避免線程阻塞。
比較好的方法就是盡量使用異步+回調(diào)的方式進(jìn)行處理。
js就沒并發(fā)的概念,換句話說沒有多線程。
你覺得是并發(fā)執(zhí)行的嗎?
js的并發(fā)只有三種情況,還只能是想想成并發(fā),運(yùn)行環(huán)境也可以用隊(duì)列+單線程實(shí)現(xiàn),未必是并發(fā):
ajax
timeout
interval
JS不同于Java, C#等語言.
使用Java編寫的應(yīng)用, 可以編程開啟多線程處理高并發(fā)業(yè)務(wù)場景.
而JS處理高并發(fā)場景使用的是 : 隊(duì)列機(jī)制, 事件機(jī)制
因?yàn)镴S在網(wǎng)頁中運(yùn)行時(shí)單線程模式, 在服務(wù)端nodejs中運(yùn)行是單進(jìn)程模式, 都無法像JAVA那樣開啟多個(gè)線程或者協(xié)程來處理高并發(fā)任務(wù).
但是這不意味著JS無法處理高并發(fā)任務(wù), 單進(jìn)程的程序在使用隊(duì)列機(jī)制(就是待處理任務(wù)一個(gè)個(gè)排隊(duì))處理高并發(fā)場景也仍然是非常高效的, 而且避免了開啟多個(gè)線程的內(nèi)存消耗.但是其缺點(diǎn)也是很明顯的 : 不適合處理單個(gè)任務(wù)計(jì)算非常復(fù)雜消耗時(shí)間的場景.
舉個(gè)栗子 :
想象一下生活中排隊(duì)的場景, 如果前面有一個(gè)人磨磨唧唧, 半天賴在窗口各種問問題, 后面的人都要排隊(duì)等著, 很著急.
而如果開啟多個(gè)窗口(多線程/進(jìn)程), 那些難纏的人分到一個(gè)窗口, 速度快的人分到一個(gè)窗口, 效率就大大提升了.
不可以。javascript是只能在一個(gè)線程中順序執(zhí)行的。
js有時(shí)候給人造成可以并發(fā)執(zhí)行錯(cuò)覺,是因?yàn)閖s跟外部線程之間是可以并發(fā)執(zhí)行的。
js執(zhí)行過程實(shí)際上就是不停地在一個(gè)消息循環(huán)隊(duì)列中讀取事件。