装载线程处理单元ProcessThread的容器是否一定得是线程安全队列ThreadSafeQueue呢?

来源:8-6 实现任务处理线程ProcessThread

虽迟但到

2019-10-07

老师您好!
我注意到线程池和任务队列都是用ThreadSafeQueue这种线程安全的容器去分别装载线程处理单元和基本任务对象的,对于任务队列来说,其中的元素有可能被多个线程并发地取出或存入,所以一定要用锁去保护,但是线程池中一个个线程处理单元,似乎只会在初始化时一一push进去,程序执行完再一一pop出来,在程序执行过程中,并不会并发地去push或pop一个新的线程处理单元进去,那么是不是线程池并不一定需要用一个线程安全的容器?甚至也不一定需要是一个队列了,一个数组也行,因为都并不需要先入先出的这种特性了。

写回答

1回答

咚咚呛

2019-10-07

是的,同学的思考很细致,值得点赞,从使用场景上来说,保存线程的容器是可以不使用线程安全的容器的。

0
0

(新版)计算机基础,计算机组成原理+操作系统+网络

编程之前先学这门课,系统补足计算机基础知识,夯实编程地基

7739 学习 · 1580 问题

查看课程