![](https://img-blog.csdnimg.cn/2019092715111047.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java并发
文章平均质量分 70
学习总结
一只小小攻城狮
这个作者很懒,什么都没留下…
展开
-
什么是线程池,如何实现的?
第二个红框:判断线程池是否在运行,如果在,任务队列是否允许插入,插入成功再次验证线程池是否运行,如果不在运行,移除插入的任务,然后抛出拒绝策略。如果在运行,没有线程了,就启用一个线程。第一个红框:workerCountOf方法根据ctl的低29位,得到线程池的当前线程数,如果线程数小于corePoolSize,则执行addWorker方法创建新的线程执行任务;线程池,说的就是提前创建好一批线程,然后保存在线程池中,当有任务需要执行的时候,从线程池选一个线程来执行任务。如果把线程池比作一个公司。原创 2024-03-28 14:27:14 · 684 阅读 · 0 评论 -
创建线程有几种方式?
接口中的方法用来检查执行是否完成、等待完成和得到执行的结果。当执行完成后,只能通过get()方法得到结果,get方法会阻塞直到结果准备好了。Runnable接口和Callable接口都可以用来创建线程,实现Runnable的时候,需要实现run方法;FutureTask是Future接口的一个实现,它实现了一个可以提交给Executor执行的任务,并且可以用来检查任务的执行状态和获取任务的执行结果。Runnable的run方法无返回值,Callable的call方法有返回值,类型为Object。原创 2024-03-28 13:37:52 · 199 阅读 · 0 评论