Dart是單線程模型。 很多進階語言,比如Java, C++以及Objective-C等都是支援併發線程,也就是多線程的,也就是採用搶佔式方式切換線程,如果涉及到共享資源, 更新線程間搶佔後就可能導致數據不同步的問題。
多線程解決此類問題就是加鎖保護資源, 但又可能帶來性能損耗,嚴重的可能導致死鎖問題。
而Dart採用單線程模式就不是導致資源競爭和狀態同步問題。
Dart中沒有線程,只有lsolate(隔離區)。lsolate之間不會共享內存,就像單獨執行在不同進程中的worker, 透過事件循環(Event Looper)在事件隊列(Event Queue)上傳遞消息通信。