12.从Thread引入Task
以下内容来自B站老杨
并发:concurrency
而Thread带来的问题或者说是限制都可以由新的Task类进行解决。
Task.Run相当于是Task.Factory.StartNew的简化版本。
例子:
输出:
可以看到什么都没输出来。
这是因为:Task使用的是线程池,使用的是后台线程,主线程结束后,后台线程也结束了,所以还没等Task中的委托打印就已经结束程序了。
如果要打印出来的话就要在主线程增加阻塞。
“热”任务也就是创建了就开始执行。
针对长时间运行的任务可以采用这种方式,短时间运行的CPU-Bound任务一般是前面指的运行时长250us(微秒),理想状况100us以内的任务。
CPU-Bound这部分需要额外看书了解。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步