线程池开关与搭建的那些事

  • 2022 年 3 月 20 日
  • 筆記

博主今天在练习的时候遇到了一个问题:

自己搭建的线程池在运行到 join 阻塞方法中就卡着不动了,而在这之前的代码都可以运行成功。如图:

 

 要说如果报了个错,我还能有地方使劲,这直接卡在这里,就让我优点难搞。

经过博主反复排查,竟然是自己搭建的线程没有开启,怪不得创建完的超线程还可以正常往里面放任务。

在这里,就顺别总结一下线程池的搭建思路吧,帮助大家避免没有开启线程的低级错误:

第一步:定义一个类,用于构建线程池的基本框架

第二部:创建可以传一个参数n的init魔法方法,随后创建一个队列,随后利用for循环创建一个可以控制线程数的线程并设置守护线程(这里一定要在在创建线程后直接开启线程)

第三步:在类里面重新定义一下内容为put和join方法的函数,这里不仅是为了方便后续使用时调用方便,还是因为队列被定义在类里了,无法在类之外调用这个队列。(此时类的设置完成啦)

第四部:创建任务(函数),注意这个函数不是在类里面的

第五部:编写主程序,通过 创建线程数量>添加任务>设置阻塞 的步骤完成具体线程的创建

以上就是今天的分享啦~

感谢大家阅读

end…