码迷,mamicode.com
首页 > 编程语言 > 详细

java多线程

时间:2018-02-05 18:41:31      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:线程池   方法   情况   gpo   程序   配置线   多次   wait   设定   

传入的参数代表我们配置的线程数,是不是越多越好呢?肯定不是。因为我们在配置线程数的时候要充分考虑服务器的性能,线程配置的多,服务器的性能未必就优。通常,机器完成的计算是由线程数决定的,当线程数到达峰值,就无法在进行计算了。如果是耗CPU的业务逻辑(计算较多),线程数和核数一样就到达峰值了,如果是耗I/O的业务逻辑(操作数据库,文件上传、下载等),线程数越多一定意义上有助于提升性能。

  线程数大小的设定又一个公式决定:

Y=N*((a+b)/a),其中,N:CPU核数,a:线程执行时程序的计算时间,b:线程执行时,程序的阻塞时间。有了这个公式后,线程池的线程数配置就会有约束了,我们可以根据机器的实际情况灵活配置。

 

 

2.

2) ThreadPool(线程池)+CountDownLatch(程序计数器)

  顾名思义,CountDownLatch为线程计数器,他的执行过程如下:首先,在主线程中调用await()方法,主线程阻塞,然后,将程序计数器作为参数传递给线程对象,最后,每个线程执行完任务后,调用countDown()方法表示完成任务。countDown()被执行多次后,主线程的await()会失效。实现过程如下:

java多线程

标签:线程池   方法   情况   gpo   程序   配置线   多次   wait   设定   

原文地址:https://www.cnblogs.com/panxuejun/p/8418352.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!