Flutter中如何深入理解异步操作与线程机制?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1418个文字,预计阅读时间需要6分钟。
一、前言:关于多线程与异步 + 关于 Dart关于 Dart,我相信大家都知道 Dart 是一门单线程语言,这里所说的单线程并不是说 Dart 没有多线程或异步功能,而是指 Dart 的所有 API 在默认情况下都是单线程执行的。
一:前言 - 关于多线程与异步
关于 Dart,我相信大家都知道Dart是一门单线程语言,这里说的单线程并不是说Dart没有或着不能使用多线程,而是Dart的所有API默认情况下都是单线程的。但大家也都知道Dart是有办法支持多线程和异步操作的,关于多线程和异步这两个概念是需要我们理清楚的,不能混淆它们的概念,给我们的理解造成困扰。
1、多线程是开辟另外一个线程来处理事件,每个线程都有单独的事件队列,互不影响,这个新线程和当前线程是并列执行的,有的共享数据空间有的不共享(比如Isolate)。
2、异步是不阻塞当前线程,将异步任务和当前线程的任务分开,异步任务后面的任务,不会等待异步任务执行完再执行,而是直接执行,与异步任务的回调没有关系,这样就不影响当前线程的执行,这就叫异步。
接下来我们按照 事件队列 --异步 -- 多线程 这样的顺序整理我们这篇的内容。二:事件队列
这个和iOS比较类似,在Dart的线程中也存在事件循环和消息队列的概念,在Dart的线程中包含一个事件循环以及两个事件队列,我们先说清楚两个事件队列,再来整理它的事件循环或着说是消息循环机制是什么样子的。
本文共计1418个文字,预计阅读时间需要6分钟。
一、前言:关于多线程与异步 + 关于 Dart关于 Dart,我相信大家都知道 Dart 是一门单线程语言,这里所说的单线程并不是说 Dart 没有多线程或异步功能,而是指 Dart 的所有 API 在默认情况下都是单线程执行的。
一:前言 - 关于多线程与异步
关于 Dart,我相信大家都知道Dart是一门单线程语言,这里说的单线程并不是说Dart没有或着不能使用多线程,而是Dart的所有API默认情况下都是单线程的。但大家也都知道Dart是有办法支持多线程和异步操作的,关于多线程和异步这两个概念是需要我们理清楚的,不能混淆它们的概念,给我们的理解造成困扰。
1、多线程是开辟另外一个线程来处理事件,每个线程都有单独的事件队列,互不影响,这个新线程和当前线程是并列执行的,有的共享数据空间有的不共享(比如Isolate)。
2、异步是不阻塞当前线程,将异步任务和当前线程的任务分开,异步任务后面的任务,不会等待异步任务执行完再执行,而是直接执行,与异步任务的回调没有关系,这样就不影响当前线程的执行,这就叫异步。
接下来我们按照 事件队列 --异步 -- 多线程 这样的顺序整理我们这篇的内容。二:事件队列
这个和iOS比较类似,在Dart的线程中也存在事件循环和消息队列的概念,在Dart的线程中包含一个事件循环以及两个事件队列,我们先说清楚两个事件队列,再来整理它的事件循环或着说是消息循环机制是什么样子的。

