线程
AndyZhang86
鄙人从事金融类软件研发多年,参与了多个国家的金融软件项目的研发,在此过程积累了些许技术经验,分享出来,以期能帮助在程序研发大业路上奋斗的同道中人。
展开
-
如何获取 ExecutorService 当前活动的线程数
我们在做多线程的时候,想要查看下当前线程池有多少活动的线程,如何获取呢?请看下面做的例子即可得到:import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.ThreadPoolExecutor;/*** @Descri...原创 2019-01-22 17:51:39 · 11395 阅读 · 1 评论 -
Java四种线程池newCachedThreadPool,newFixedThreadPool,newScheduledThreadPool,newSingleThreadExecutor
通常,我们需要创建一些线程去执行一些任务。比如执行一个异步任务,你还是像下面的new Thread吗?new Thread(new Runnable() { @Override public void run() { // TODO something }}).start();那么你就out了,Why? 客官请看new Thread的弊端:1)每...原创 2019-01-30 13:30:21 · 323 阅读 · 0 评论 -
关于ThreadPoolExecutor线程池的常用参数解读以及实际验证
对于ThreadPoolExecutor这个线程池,我经过一些简单的测试验证发现,想要看看,是不是corePoolSize初始值的线程数用完就会马上新增线程直到最大线程池maximumPoolSize满为止,最后才往等待队列workQueue里面塞? 然而实际上并非如此。首先让我们看下ThreadPoolExecutor的通用构造函数:public ThreadPoolExecutor(i...原创 2019-02-25 13:21:14 · 323 阅读 · 0 评论 -
如何根据CPU数进行线程数设置
通常我们设置程序线程池的时候都会想,怎么设置这个参数好?太大了支撑不起,太小了浪费资源,怎么样最大化利用线程数?一般说来,大家认为线程池的大小经验值应该这样设置:(其中n为CPU的个数)如果是CPU密集型应用,则线程池大小设置为n+1 如果是IO密集型应用,则线程池大小设置为2n+1(因为io读数据或者缓存的时候,线程等待,此时如果多开线程,能有效提高cpu利用率)如果一台服务器上只部...原创 2019-02-20 11:37:09 · 7716 阅读 · 0 评论