dart 是单线程还是多线程

dart 是单线程还是多线程

Dart是单线程模型。 很多高级语言,比如Java, C++以及Objective-C等都是支持并发线程,也就是多线程的,也就是采用抢占式方式切换线程,如果涉及到共享资源, 更新线程间抢占后就可能导致数据不同步的问题。

多线程解决此类问题就是加锁保护资源, 但又可能带来性能损耗,严重的可能导致死锁问题。

而Dart采用单线程模式就不是导致资源竞争和状态同步问题。

Dart中没有线程,只有lsolate(隔离区)。lsolate之间不会共享内存,就像单独运行在不同进程中的worker, 通过事件循环(Event Looper)在事件队列(Event Queue)上传递消息通信。