[討論] javascript是共時、多執行緒嗎?

看板Ajax作者 (無虧/明月幾時有?)時間12年前 (2011/11/04 21:45), 編輯推噓4(4016)
留言20則, 5人參與, 最新討論串1/11 (看更多)
參考討論串: 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
所以你應該來寫 GWT [茶]
11/04 23:12, 1F

11/05 04:36, , 2F
寫GWT 跟寫 javascript 是完全的兩碼子事 :P
11/05 04:36, 2F

11/05 11:08, , 3F
完全兩碼子的事情? 真是幹得好... 高手啊
11/05 11:08, 3F

11/06 07:24, , 4F
我喜歡Node.js不知在哪看到的一句話:
11/06 07:24, 4F

11/06 07:24, , 5F
Everything runs in parallel, except your code.
11/06 07:24, 5F

11/06 07:25, , 6F
感覺就能夠了解JavaScript的運作過程XD
11/06 07:25, 6F

11/06 10:59, , 7F
不用太誇讚我,我不會不好意思。:P
11/06 10:59, 7F

11/06 11:05, , 8F
有見解的歡迎回文,不用高手來高手去內藏幾千字人家猜不透
11/06 11:05, 8F

11/06 11:05, , 9F
的小劇場,我的論點在於GWT一來綁定平台,二來寫的跟純
11/06 11:05, 9F

11/06 11:06, , 10F
JS的界面相去太遠,對於熟悉JS或者正在寫js的developer而言
11/06 11:06, 10F

11/06 11:06, , 11F
轉換成本頗高。所以要正在寫js的developer轉用GWT寫而解決
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
既然 GWT 都出來了,那我只好推個 Dart 了。
11/06 11:34, 17F

11/06 20:51, , 18F
果然不愧是高手,應該請大家來膜拜一下 (y)
11/06 20:51, 18F

11/06 20:53, , 19F
請大家千萬不要學 GWT,至少不要在 AJAX 版學,真的.....
11/06 20:53, 19F

11/16 11:29, , 20F
樓上的,你時間太多了嗎?
11/16 11:29, 20F
文章代碼(AID): #1Ei-oA04 (Ajax)
討論串 (同標題文章)
文章代碼(AID): #1Ei-oA04 (Ajax)