博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java线程池
阅读量:6004 次
发布时间:2019-06-20

本文共 3825 字,大约阅读时间需要 12 分钟。

hot3.png

import java.util.concurrent.Callable;

import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
/**
 * @description 线程池
 * LUKE
 * 2018年6月8日 上午9:58:17
 */
public class CallableTest {
    
    public static void main(String[] args) throws InterruptedException, ExecutionException {
        
        Thread t1 = Executors.defaultThreadFactory().newThread(new Runnable() {
            
            public void run() {
                for(int i = 0; i < 10; i ++){
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                    }
                    System.out.println("###### threadName=" + Thread.currentThread().getName() + ", num="+i);
                }
                System.out.println("########################################## 执行完毕 ##########################################");
            }
        });
        
        Thread t2 = Executors.defaultThreadFactory().newThread(new Runnable() {
            
            public void run() {
                for(int i = 0; i < 10; i ++){
                    try {
                        Thread.sleep(2000);
                    } catch (InterruptedException e) {
                    }
                    System.out.println("$$$$$$ threadName=" + Thread.currentThread().getName() + ", num="+i);
                }
                System.out.println("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 执行完毕 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");
            }
        });
        
        Thread t3 = Executors.defaultThreadFactory().newThread(new Runnable() {
            @Override
            public void run() {
                for(int i = 0; i < 10; i ++){
                    try {
                        Thread.sleep(3000);
                    } catch (InterruptedException e) {
                    }
                    System.out.println("^^^^^^ threadName=" + Thread.currentThread().getName() + ", num="+i);                    
                }
                System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 执行完毕 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
                
            }
        });
        
        Callable<String> t4 = new Callable<String>() {
            @Override
            public String call() throws Exception {
                for(int i = 0; i < 10; i ++){
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                    }
                    System.out.println("###### threadName=" + Thread.currentThread().getName() + ", num="+i);
                }
                System.out.println("########################################## 执行完毕 ##########################################");
                return "t4";
            }
        };
        
        Callable<String> t5 = new Callable<String>() {
            @Override
            public String call() throws Exception {
                for(int i = 0; i < 10; i ++){
                    try {
                        Thread.sleep(2000);
                    } catch (InterruptedException e) {
                    }
                    System.out.println("$$$$$$ threadName=" + Thread.currentThread().getName() + ", num="+i);
                }
                System.out.println("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 执行完毕 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");
                return "t5";
            }
        };
        
        Callable<String> t6 = new Callable<String>() {
            @Override
            public String call() throws Exception {
                for(int i = 0; i < 10; i ++){
                    try {
                        Thread.sleep(3000);
                    } catch (InterruptedException e) {
                    }
                    System.out.println("^^^^^^ threadName=" + Thread.currentThread().getName() + ", num="+i);                    
                }
                System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 执行完毕 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
                return "t6";
            }
        };
        
        ExecutorService pool = Executors.newCachedThreadPool();
        
//        pool.execute(t1);
//        pool.execute(t2);
//        pool.execute(t3);
//        System.out.println("pool.shutdown() ...");
//        pool.shutdown();
//        System.out.println("运行结束... ");
        
        Future<String> t4Future = pool.submit(t4);
        Future<String> t5Future = pool.submit(t5);
        Future<String> t6Future = pool.submit(t6);
        
        System.out.println("============================================");
        System.out.println(t4Future.get());
        System.out.println(t5Future.get());
        System.out.println(t6Future.get());
        System.out.println("***********************************************");
        
//        String future = t4Future.get() + t5Future.get() + t6Future.get();
//        System.out.println(future);
//        String threadResult = "t4t5t6";
//        if(threadResult.equals(future)){
//            System.out.println("pool shutdown ...");
//            pool.shutdown();
//        }
        
        System.out.println("pool.shutdown() ...");
        pool.shutdown();
        System.out.println("运行结束...");
        
    }
    
}

转载于:https://my.oschina.net/u/2607324/blog/1826489

你可能感兴趣的文章
2012 Gartner软件成熟度曲线
查看>>
ecshop美化放入购物车效果
查看>>
MVC HtmlHelper用法大全
查看>>
如何获得控件的属性
查看>>
ansible小结
查看>>
实习小白::(转) 官网文档 -->> 骨骼动画详解-Spine
查看>>
企业应用平台移动化发展趋势
查看>>
第一篇:多线程的概念
查看>>
css图标与文字对齐实现方法
查看>>
「近世代數概論」(Garrett Birkhoff,Saunders Mac Lane) 3.1.1 引理1
查看>>
【trie树】HDU4825 Xor Sum
查看>>
扩大Tomcat内存
查看>>
结对编程--------四则运算 实验总结2
查看>>
python类的继承、多继承及其常用魔术方法
查看>>
使用C/C++的union联合体将十进制转二进制
查看>>
ASM
查看>>
hdu 3555(数位dp)
查看>>
uva 10594(最小费用最大流)
查看>>
逻辑与和逻辑或:&& 、||
查看>>
一面一得
查看>>