多线程
2020-10-10 15:16:31 0 举报
多线程编程思想
作者其他创作
大纲/内容
子任务
子线程5
其他优化(提供更多API等)
单线程
await
判断底层是用thread还是threadpool,以及做一些线程和cpu的优化事项
代码逻辑一
等待,子线程然后继续运行内部代码,直到async整个方法执行完成
子线程x
子线程y
返回结果
需要
空闲的线程重复使用,以及避免无限制的创建线程(适合短频调用)
代码逻辑二
代码逻辑三
Thread
async(){}
可以开启子线程的,但缺乏对线程的管理,以及线程间交互(适合少数任务)
代码模块逐个响应
不需要
子任务/线程
【多线程交互/多线程编程】async:调用我的模块,如果不需要我返回结果,则可以不用等我执行完。await:标记为async的方法,请等待我开启的线程返回结果。所以:async 和await一般是成队出现。方法只用async 则和普通同步调用一样;只用await语法都通不过,编译器报错。
Task
ThreadPool
*以上内容子线程和主线程 以及多个子线程间数据是无交互的*
子线程3
线程池
new Thread(Run) { IsBackground = true };注:前后台线程的区别在于,应用程序是否存活与前台线程有关)。
子线程n
多线程交互
是否需要async返回值在继续运行后面代码
子线程2
子线程1
子线程4
实现多个线程间数据交互、信息分享
Tread线程
任务池:满了则等待,否则指派任务到线程
子线程6
线程cpu调度
收藏
收藏
0 条评论
下一页