并发编程 ---为何要线程池化
原文中文,约3700字,阅读约需9分钟。发表于: 。引言众所周知,使用线程可以极大的提高应用程序的效率和响应性,提高用户体验,但是不可以无节制的使用线程,为什么呢?线程的开销线程的开销实际上是非常大的,我们从空间开销和时间开销上分别讨论。线程的空间开销线程的空间开销来自这四个部分:线程内核对象(Thread Kernel Object)。每个线程都会创建一个这样的对象,它主要包含线程上下文信息,在32位系统中,它所占用的内存在700字节左右。线程环...
线程的开销包括空间和时间开销,空间开销来自线程内核对象、环境块和栈,时间开销来自创建、DLLMain方法调用和上下文切换。为了避免滥用线程,引入了线程池和BackgroundWorker。Task替代了ThreadPool,具有更高级的抽象、强大的异步编程支持、更好的性能和资源管理、任务关联和组合功能,以及更好的异常处理和取消支持机制。推荐使用Task来处理并发任务。