[討論] javascript是共時、多執行緒嗎?
參考討論串: http://ppt.cc/ZLYB (研究中)
手邊沒恐龍本 忘記放哪了
所以不太確定共時的定義、需要解synchronization的狀況
不過以我手邊的工作來說
我確實遇到了synchronization的問題
有個critical section 在裡面出現狀況
所以加上ajax的js 的確會遇到同步問題。
那沒有ajax的javscript呢?
網路上有人說 ajax 讓javascript變成multi-threaded
這是因為ajax讓javascript可以不同步進行工作
也就是說 ajax 在讀取成功後所執行的工作
和原本ajax後面的程式碼
形成多thread的局面
沒有ajax 程式設計師無法寫出第二個thread的程式碼
所以好像可以說 沒ajax javascript就是單執行序。
不過這樣javascript就不會有同步問題嗎?
Wallace variance of Bakery's algorithm就是多餘的嗎?
setTimeout雖然就像是system call
交給系統幫我們做事的感覺
不過作的內容卻是設計師自己定義
萬一剛好是critical section,
會不會出問題呢?
本身的javascript執行到那個地方 還沒離開
又剛好被timer中斷 timer又跳進去執行
這樣會發生甚麼事呢?
alert()視窗出現時 其他javascript就一定會停止運作嗎?
即使丟給了系統一個system call, javascript會停下來等系統完成工作嗎?
其他像是鍵盤觸發的事件 如果使用者一直壓著
送出信號的間隔就會非常短
那如果剛好callback function裡的內容屬於critical section
會不會發生前一個信號的工作還沒完成 第二個訊號就送進來?
我心中目前有個小小的想法:
其實這些問題 只要不寫出scritical section就可輕鬆避開。
但這樣的話 就可能會捨棄 javascript
interactive的原則。
在這裡沒找到類似的討論串 網路上中文的也很少
但英文還算不少
所以把這個議題放上來。
不知這個問題已經是老梗了 還是...?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.121.162.216
推
11/04 23:12, , 1F
11/04 23:12, 1F
→
11/05 04:36, , 2F
11/05 04:36, 2F
推
11/05 11:08, , 3F
11/05 11:08, 3F
推
11/06 07:24, , 4F
11/06 07:24, 4F
→
11/06 07:24, , 5F
11/06 07:24, 5F
→
11/06 07:25, , 6F
11/06 07:25, 6F
→
11/06 10:59, , 7F
11/06 10:59, 7F
→
11/06 11:05, , 8F
11/06 11:05, 8F
→
11/06 11:05, , 9F
11/06 11:05, 9F
→
11/06 11:06, , 10F
11/06 11:06, 10F
→
11/06 11:06, , 11F
11/06 11:06, 11F
→
11/06 11:06, , 12F
11/06 11:06, 12F
→
11/06 11:06, , 13F
11/06 11:06, 13F
→
11/06 11:08, , 14F
11/06 11:08, 14F
→
11/06 11:08, , 15F
11/06 11:08, 15F
→
11/06 11:09, , 16F
11/06 11:09, 16F
→
11/06 11:34, , 17F
11/06 11:34, 17F
推
11/06 20:51, , 18F
11/06 20:51, 18F
→
11/06 20:53, , 19F
11/06 20:53, 19F
→
11/16 11:29, , 20F
11/16 11:29, 20F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 11 篇):
Ajax 近期熱門文章
PTT數位生活區 即時熱門文章