其他分享
首页 > 其他分享> > 多线程----线程池(ThreadPool)

多线程----线程池(ThreadPool)

作者:互联网

1. 线程(Thread)的缺陷

线程资源是操作系统管理的,响应并不灵敏,所以没那么好控制;Thread启动线程是没有控制的,可能导致死机(就是可以随便开启一个新线程)

2.线程池(TheadPool)

创建线程是昂贵的操作,所以为每个短暂的异步操作创建线程会产生显著的开销。一般情况下,都会使用池,也就是线程池进行管理。

线程池可以成功地适应于任何需要大量短暂的开销大的资源。实现分配一定的资源,将这些资源放入到资源池中。每次需要新的资源,只需要从池中

获取一个,不需要创建新的,当该资源不再被使用时,就将其返回到池中。

在.net中,线程池可以使用ThreadPool类型,受.net通用语言运行时(CLR)管理。每个CLR都有一个线程池实例。ThreadPool类型拥有一个QueueUseWoekItem静态方法。

该方法接收一个委托,

线程池:池化资源管理设计思想,线程是一种资源,之前每次要使用线程,就去申请一个线程,使用完之后,释放掉;池化就是做一个容器,容器提前申请多(5)个线程,

程序需要使用线程,直接找容器获取,用完后再放回容器(控制状态),避免频繁的申请和销毁;容器还会根据限制的数量去申请和释放。

线程池的优点:

(1)线程复用   (2)可以限制最大线程数量

缺点:

ThreadPool的API太少了,导致线程等待顺序控制特别弱,影响实战

 

 

参考连接:https://mp.weixin.qq.com/s?__biz=MzU0ODQ5NzA4NQ==&mid=2247484603&idx=1&sn=7dc539bc911a53287afd7b6aaf5bbc41&chksm=fbbf7769ccc8fe7fecbd4363ca2629a8b374eeb4eca468527336eb6819edc3ef034e3aced8f3&cur_album_id=2012691840461783041&scene=189#wechat_redirect

https://www.bilibili.com/medialist/play/ml1297569058/BV1Yv411A73j?spm_id_from=333.999.0.0&oid=250144381&otype=2

 

标签:ThreadPool,容器,申请,----,线程,使用,多线程,资源
来源: https://www.cnblogs.com/hobelee/p/16439901.html