线程池开关与搭建的那些事
博主今天在练习的时候遇到了一个问题:
自己搭建的线程池在运行到 join 阻塞方法中就卡着不动了,而在这之前的代码都可以运行成功。如图:
要说如果报了个错,我还能有地方使劲,这直接卡在这里,就让我优点难搞。
经过博主反复排查,竟然是自己搭建的线程没有开启,怪不得创建完的超线程还可以正常往里面放任务。
在这里,就顺别总结一下线程池的搭建思路吧,帮助大家避免没有开启线程的低级错误:
第一步:定义一个类,用于构建线程池的基本框架
第二部:创建可以传一个参数n的init魔法方法,随后创建一个队列,随后利用for循环创建一个可以控制线程数的线程并设置守护线程(这里一定要在在创建线程后直接开启线程)
第三步:在类里面重新定义一下内容为put和join方法的函数,这里不仅是为了方便后续使用时调用方便,还是因为队列被定义在类里了,无法在类之外调用这个队列。(此时类的设置完成啦)
第四部:创建任务(函数),注意这个函数不是在类里面的
第五部:编写主程序,通过 创建线程数量>添加任务>设置阻塞 的步骤完成具体线程的创建
以上就是今天的分享啦~
感谢大家阅读
end...