Kotlin 协程
时间:2020-04-21
本文章向大家介绍Kotlin 协程,主要包括Kotlin 协程使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
为什么需要协程
在JavaScript ES6中引入了Promise对象,以及async和await关键字,使得异步编程变得容易了:
const child_process = require('child_process');
const worker = require('worker_threads');
function getData() {
return new Promise((resolve, reject) => {
// 这里开启了一个新的工作线程,工作耗时2s
const th = new worker.Worker(__filename);
th.once('message', data => {
resolve(data);
})
});
}
async function asyncTask() {
var data = await getData();
console.log('主线程', worker.threadId, ': 很明显,工作线程计算完毕了,结果是多少呢,我已经返回给调用者了');
return data
}
function main() {
console.log('主线程', worker.threadId, ': 开始你的表演show');
asyncTask().then(data => {
console.log('主线程', worker.threadId, ': 我当然知道结果是', data);
});
console.log('主线程', worker.threadId, ': 你慢慢来,别着急哈!');
}
if (worker.isMainThread) {
main();
} else {
console.log('工作线程', worker.threadId, ': 开始堵塞');
child_process.execSync(`sleep 2`);
console.log('工作线程', worker.threadId, ': 我好了');
worker.parentPort.postMessage(2020)
}
/*
主线程 0 : 开始你的表演show
主线程 0 : 你慢慢来,别着急哈!
工作线程 1 : 开始堵塞
主线程 0 : 很明显,工作线程计算完毕了,结果是多少呢,我已经返回给调用者了
主线程 0 : 我当然知道结果是 2020
工作线程 1 : 我好了
*/
原文地址:https://www.cnblogs.com/develon/p/12743779.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 详解Kubernetes存储体系
- Python3 正则表达式特殊符号及用法.md
- Web网页响应式布局.md
- BootStrap应用开发学习入门1
- Python实现单链表和字典
- 关于如何做好运维管理工作的一点思考
- 2.6-Air302(NB-IOT)-基础外设-AD采集,NTC温度传感器B3950
- 2.5-Air302(NB-IOT)-基础外设-串口(485,422),CRC校验
- 2.3-Air302(NB-IOT)-基础外设-输入检测
- 2.2-Air302(NB-IOT)-基础外设-PWM输出
- API可视化管理平台YApi
- BootStrap应用开发学习入门
- 为什么要学习现代控制理论(机器人方向)?
- 2.XML之编程解析示例笔记
- XML快速入门学习笔记