heima并发---并发工具(3)---线程池方法--215

heima并发---并发工具(3)---线程池方法--215

代码演示:

Callable和Runnable相比就是多了返回的记录。

submit方法是提交给线程池中的线程来调用的。

代码:

heima并发---并发工具(3)---线程池方法--215

heima并发---并发工具(3)---线程池方法--215

Future是阻塞的。future.get是阻塞主线程的。

单方法的接口都可以用lambda表达式简化的。

---215---

invoke和invokeAll

heima并发---并发工具(3)---线程池方法--215

在这里面去调用下。

heima并发---并发工具(3)---线程池方法--215

---216---

invokeAny:有一个线程执行完毕就返回future不管其他的是不是执行完毕了。

heima并发---并发工具(3)---线程池方法--215

测试:当fix的线程池只有一个线程的话?

就是执行的任务1 2和3都被拍到任务队列里面的。

---217---

shutdown。

heima并发---并发工具(3)---线程池方法--215

shutdown不是阻塞的。

空闲的线程是打断的不是自己结束的。

heima并发---并发工具(3)---线程池方法--215

返回的是队列的任务。

---218---

举例:

heima并发---并发工具(3)---线程池方法--215

   heima并发---并发工具(3)---线程池方法--215

调用shutdown之后不能提交任务了。

shutdown并不会阻塞线程的其他任务的。

强制等待,时间够了或者所有任务执行完毕再往下执行。

heima并发---并发工具(3)---线程池方法--215

shutdowm:

heima并发---并发工具(3)---线程池方法--215

正在执行的任务都会被打断,返回阻塞队列的任务。

---219---