我正在MongoDB中構建數據建模的中間部分,它將與Nodejs一起工作。我很想理解線程在Javascript中如何處理執行流的基本級工作。基本上我想明白,如果他們在Javascript的線程的執行方面有任何差異& Nodejs。 javascript是單線程的,並且基於v8 javascript的Nodejs也是單線程的!這兩者在執行方面有什麼突破之處?Javascript是如何工作的單線程和NodeJS單線程在流程執行方面有所不同
-2
A
回答
1
在你的問題中的術語有點搞砸了,因此它看起來你的問題有點誤導。試圖將「Javascript」與node.js進行比較並沒有什麼意義。 node.js運行Javascript代碼就好了。你並沒有真正比較兩者。我將假設你想要比較的是「Chrome瀏覽器中的Javascript」與「node.js中的Javascript」。
Javascript在Chrome(或任何其他瀏覽器)和node.js中的主線程是單線程的。它們在這方面表現相同,事實上,node.js和Chrome使用完全相同的V8 Javascript執行引擎。與外界或其他本地代碼的所有協調都是通過事件隊列進行的。
現代瀏覽器確實有允許附加線程的Javascript的webWorkers,但這些線程在他們可以做什麼(例如,他們無法訪問DOM)以及他們如何與主Javascript線程(所有通信是通過消息傳遞的 - 直接函數調用或共享變量是不允許的)。 web工作者幾乎和獨立進程一樣孤立,在node.js中。
Chrome和node.js都有本地代碼庫,它們使用本機線程來實現它們的工作,但是當它們與用戶的Javascript代碼交互時,它們都會通過事件隊列,這就是它們如何連接單線程Javascript碼。
相關問題
- 1. 具有緩存線程的單線程執行程序
- 2. Linux線程執行流程
- 3. Android Loader是否在單獨的線程中執行其工作?
- 4. Android線程 - 在執行所有其他線程之前執行一個線程
- 5. 單線程單元中的工作流程4.0?
- 6. javascript是單線程的嗎?
- 7. Apache Activiti工作流程執行是作爲一個單獨的流程或在Activiti流程中執行的
- 8. 爲什麼我的多線程執行是單線程模式
- 9. 單線程執行完成
- 10. 單一線程執行
- 11. 如何執行線程同步從一個單獨的單位
- 12. nodejs單線程?如果有很多併發請求,它是如何工作的
- 13. 如何強制單線程執行?
- 14. 如何執行單線程請求?
- 15. 線程,隊列和工作流程
- 16. 如何從不同於ApplicationContext線程的線程顯示錶單
- 17. 在單獨的線程中衝突執行相同的方法?
- 18. RejectedExecutionException來自單線程執行程序
- 19. 單線程工作負載
- 20. java編程和java單線程多線程問題(單線程與多線程)
- 21. Python線程沒有執行所有創建的線程
- 22. 當JavaScript是單線程時,Promises如何工作?
- 23. 如何讓所有的類方法只在單線程上運行? (同步課?)
- 24. 有關redis工作的衝突:Redis是單線程還是多線程?
- 25. 強制Eclipse執行多線程Java程序單線程
- 26. C++線程的執行時間和執行線程在另一個線程
- 27. 如何執行多線程應用程序作爲線程?
- 28. 是Scrapy單線程還是多線程?
- 29. 如何以編程方式從工作線程獲取父線程和同級線程的CPU利用率?
- 30. 流水線工作流程和變量
Javascript是一種語言,Node是運行這種語言的引擎。 –
@JeremyThille要學究節點是一個環境,V8是JS引擎 –
我正在努力簡化事情:) –