Linux安全网 - Linux操作系统_Linux 命令_Linux教程_Linux黑客

绿色网站无广告
会员投稿 投稿指南 本期推荐:
搜索:
您的位置: Linux安全网 > Linux集群 > Architecture > » 正文

计数器让主线程等待所有子线程完成后,再工作

来源: 未知 分享至:
public class ThreadPool {

    private static ExecutorService executor;
    private static int count = 0;

    static {
        executor = Executors.newFixedThreadPool(3);
    }

    public static void execute(Runnable run) {
        count++;
        executor.execute(run);
    }

    public static void close(){
        executor.shutdown();
    }

    public static boolean isClosed(){
        if(executor.isShutdown()){
            return true;
        }else{
            return false;
        }
    }

    public synchronized static void deleteCount(){
        count--;
        System.out.println(count);
    }

    public static int getCount(){
        return count;
    }

    public static void out(){
        System.out.println("最终的个数" + count);
    }
}

public class ThreadPoolTest {

    public static void main(String[] args){
        for(int i = 0; i< 5; i++){
            ThreadPool.execute(new Runnable(){

                public void run() {
                    System.out.println(Thread.currentThread().getName() + "开始了");
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException ex) {
                        Logger.getLogger(ThreadPoolTest.class.getName()).log(Level.SEVERE, null, ex);
                    }
                    System.out.println(Thread.currentThread().getName() + "完成了");
                    ThreadPool.deleteCount();
                    
                }

            });
        }
        while(ThreadPool.getCount() != 0){
            
            if(ThreadPool.getCount() == 0){
                break;
            }
        }
        System.out.println("全部完成了,结束");
        ThreadPool.close();
        
    }
}


Tags:
分享至:
最新图文资讯
1 2 3 4 5 6
验证码:点击我更换图片 理智评论文明上网,拒绝恶意谩骂 用户名:
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 发展历史