Thread 就是线程。一个小小的对象而已。线程上可以执行一个函数。主要用法可以用来并发执行一些动作,也能在不阻塞UI的情况下完成一些持续计算。但是,很多人觉得每次调用一个函数都要new一个线程是很麻烦的。所以干脆提前New好了很多线程。装在一个list中。你要调用函数的时候就从list中提取出一个空闲的线程。函数执行完毕后,就把这个空闲的线程又放到这个list中。减少了new thread的时间。所以线程池,说白了就是List。提供一个方法,让你能方便的把自己的函数不管三七二十一都放这个List中去,然后依次执行。
所以,如果你常常使用系统的线程池,你甚至不需要知道Thread是什么东西。你只要知道,这是一个魔术口袋,你把你的函数塞进去,过一阵子就执行完了。根本不要你来操心。
微软真是培养懒人啊。。
后来大家发现,线程池也不方便,因为进了这个魔术口袋的函数,你不能突然中断它的执行。在多核时代,它的效率也不尽如人意。所以微软又把原来的线程池改造了一下,现在都不叫threadPool了。直接叫Task。你不必管我是怎么实现的,你只要把函数塞我肚肚里,我一定会执行。而且你能用我提供的API。来控制整个过程。
所以Task。就是一个方便使用的线程池。至于把函数塞进去。肯定是在其它线程中执行的,只是这不是我们需要操心的了。
我很喜欢微软的新特性,每次都能给我带来新的惊喜。让我又懒了一些。