@SpringBootTest
class ThreadTestApplicationTests {
@Test
void contextLoads() {
// ExecutorService pools= Executors.newFixedThreadPool(5);
ExecutorService pools= new ThreadPoolExecutor(4,4,0,
TimeUnit.SECONDS, new LinkedBlockingDeque<Runnable>(1),new ThreadPoolExecutor.CallerRunsPolicy());
int i=0;
while (i<20){
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+"==="+(i++));
User user = new User();
user.setNum(i);
pools.execute(new MyRunable(user));
}
pools.shutdown();
while (true){
if(pools.isTerminated()){
System.out.println("所有线程结束");
break;
}
}
}
}