Dart Async2024 年 8 月 29 日 | 4 分钟阅读 Dart 异步与异步编程相关。 它在线程中执行异步操作。 它确保关键功能执行到完成。 异步操作与主应用程序线程分开执行。 在 Dart 中,一个操作不能中断另一个操作; 这意味着一次只能执行一个操作,程序的其他部分不能阻止它。 让我们理解以下示例 - 示例 -输出 Enter your favorite car : Renault Duster The car is Renault Duster End of main 说明在上面的代码中,我们使用了 readLineSync(),这是一个同步方法。 这意味着; 在 readLineSync() 方法完成执行之前,所有跟随 readLineSync() 方法调用的指令的执行都将被阻塞。 stdin.readLineSync () 在没有从用户那里得到输入之前什么也不执行。 它等待用户输入以便进一步执行。 异步和同步的区别让我们了解一下同步和异步之间的区别。 在计算机科学中,如果我们说一个特定的程序是同步的,那意味着它等待一个事件才能进一步执行。 这种方法有一个缺点,如果代码的一部分需要很长时间才能执行,那么通过不相关块的后续块将被阻止执行。 这是同步方法的主要问题。 程序的一部分可能需要在当前部分之前执行,但同步方法不允许这样做。 这不适用于 webserver,因为请求必须独立于其他请求。 这意味着,webserver 不会等待完成当前请求的执行,它会响应来自其他用户的请求。 Web 服务器应该在执行先前请求之前接受来自其他用户的请求。 这种方法称为异步编程。 异步编程通常侧重于非等待或非阻塞编程模型。 dart: async 方便在 Dart 脚本中实现异步编程块。 示例 -我们创建一个包含一些名称的文件,并将此文件另存为 names.txt,并编写一个程序来读取此文件,而不会延迟代码的其他部分。 考虑以下代码。 输出 End of main 1, Peter 2, John 3, Tom 4, Johnson Dart FutureDart Future 被定义为在未来某个时候获得结果。 Future 对象用于促进异步编程。 Future 对象是一种工具,用于表示表达式返回的值,该表达式的执行将在稍后的时间点(在未来)完成。 为了使用 future,我们可以使用 async 和 await 或 Future API。 Dart async 和 awaitasync 和 await 关键字允许在不使用 Future API 的情况下实现异步编程。 async 关键字对于异步运行函数是必要的; 我们需要在函数名称后添加 async。 语法如下 语法当调用 async 函数时,Future 对象会立即返回,这表明 async 函数将在稍后执行。 一旦执行了 async 函数的主体,函数调用就会返回 Future 对象。 函数调用将以其结果完成。 Dart await 关键字await 关键字也用于异步执行函数。 它暂停当前正在运行的函数,直到结果准备就绪。 当它返回结果时,它会继续执行下一行代码。 await 关键字只能与 async 函数一起使用。 语法如下所示。 语法这里,e 是一个异步表达式,预计会评估为 Future。 await 表达式评估 e,然后暂停当前正在运行的函数,直到结果准备就绪。 让我们理解以下示例 - 示例 - 1输出 Hii JavaTpoint Task Complete 说明在这里,我们使用 async 关键字将 main() 函数声明为异步的,因为我们异步调用 hii() 方法。 然后,我们使用 await 修饰符来调用异步执行的 hii()。 注意 - 调用者函数和被调用函数必须使用 async 关键字才能使用 await。下一主题Dart 并发 |
我们请求您订阅我们的新闻通讯以获取最新更新。