多线程
不想打代码的码农
现阶段无脑谷歌百度CSDN博客园
展开
-
既然CPU同一时间只能执行一个线程,为什么存在并发问题
一点小疑惑终于解开啦1.CPU的时间是按时间片分的,而不是一个时间点,并发问题是由于CPU线程切换导致的。 现在假设有一段代码if(i == 1) { i++; //断点1 system.out.print(i); } //断点2有两个线程A,B同时执行这一段代码,假设A线程先被CPU调度,然而A线程在断点1处,时间片到期了,此时A线程的代码并没有执行完,但是CPU此时会调度B线程,并不会管A线程是不是执行完了这一段代码。再接着假设B线程现在执行完了这一段代码(当转载 2020-09-20 21:26:37 · 1225 阅读 · 0 评论 -
ThreadPoolExecutor线程池中线程不能超过核心线程数量的问题
int arg1=2;//核心线程 int arg2=40;//最大线程数量 int arg3=100;//空余保留时间 // 时间单位 ThreadPoolExecutor pool=new ThreadPoolExecutor(arg1, arg2, arg3,TimeUnit.MILLIS...转载 2019-12-03 10:20:54 · 2265 阅读 · 1 评论