装载线程处理单元ProcessThread的容器是否一定得是线程安全队列ThreadSafeQueue呢?
来源:8-6 实现任务处理线程ProcessThread

虽迟但到
2019-10-07
老师您好!
我注意到线程池和任务队列都是用ThreadSafeQueue这种线程安全的容器去分别装载线程处理单元和基本任务对象的,对于任务队列来说,其中的元素有可能被多个线程并发地取出或存入,所以一定要用锁去保护,但是线程池中一个个线程处理单元,似乎只会在初始化时一一push进去,程序执行完再一一pop出来,在程序执行过程中,并不会并发地去push或pop一个新的线程处理单元进去,那么是不是线程池并不一定需要用一个线程安全的容器?甚至也不一定需要是一个队列了,一个数组也行,因为都并不需要先入先出的这种特性了。
写回答
1回答
-
是的,同学的思考很细致,值得点赞,从使用场景上来说,保存线程的容器是可以不使用线程安全的容器的。
00
相似问题