12.从Thread引入Task

以下内容来自B站老杨

并发:concurrency

12.从Thread引入Task

 

而Thread带来的问题或者说是限制都可以由新的Task类进行解决。

12.从Thread引入Task

Task.Run相当于是Task.Factory.StartNew的简化版本。

12.从Thread引入Task

 

 例子:

12.从Thread引入Task

 

 输出:

12.从Thread引入Task

 

可以看到什么都没输出来。

这是因为:Task使用的是线程池,使用的是后台线程,主线程结束后,后台线程也结束了,所以还没等Task中的委托打印就已经结束程序了。

如果要打印出来的话就要在主线程增加阻塞。

12.从Thread引入Task

 

 12.从Thread引入Task

 

 “热”任务也就是创建了就开始执行。

12.从Thread引入Task

12.从Thread引入Task

 

 12.从Thread引入Task

 

 12.从Thread引入Task

 

 12.从Thread引入Task

 

 针对长时间运行的任务可以采用这种方式,短时间运行的CPU-Bound任务一般是前面指的运行时长250us(微秒),理想状况100us以内的任务。

 

12.从Thread引入Task

 

 CPU-Bound这部分需要额外看书了解。

 

上一篇:34. 在排序数组中查找元素的第一个和最后一个位置


下一篇:报错:Invalid bound statement (not found): com.pinyougou.mapper.TbBrandMapper.selectByExample