java线程池的使用。

来源:互联网 发布:java https 2.0 编辑:程序博客网 时间:2024/06/03 12:45

java线程池的使用的代码:

package www.com.weitao;


import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;


public class Test1 {
public static void main(String[] args) {
ExecutorService es = Executors.newFixedThreadPool(10);
for (int i = 10; i <= 100; i += 10) {
calculate(es, i);
}


               //当线程使用完毕处于空闲状态时关闭当前线程
es.shutdown();

}


private static void calculate(ExecutorService es, final int n) {
es.execute(new Runnable() {
public void run() {
int sum = 0;
for (int i = n - 9; i <= n; i++) {
sum += i;
}
System.out.println("从" + (n - 9) + "到" + n + "相加的结果为:" + sum);
}
});
}
}

想要灵活使用线程我们必须了解到线程池的作用:

1.线程池只会是在你主线程的基础上面再创建了几个线程,当你运行时很有可能你的main线程执行完了,却发现你开启的线程池中的程序还在执行。

2.线程是随机的,只要你的线程有空闲的,他就会出来执行。

3.当某个线程执行完了之后我们就要把线程进行关闭。


在现实生活中我们往往需要再开启的线程执行完成之后再对主线程进行继续执行:

即:以上代码必须增加线程池中是否还有线程再执行的判断如下加在es.shutdown()之后

  

while (true) {  
           if (es.isTerminated()) {  
               System.out.println("结束了!");  
               break;  
           }  
       } 

这个跳出循环则代表线程池中的线程已经全部关闭。

0 0
原创粉丝点击