`
younglibin
  • 浏览: 1194335 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java 多线程 执行完成 退出 关闭

 
阅读更多

本来多线程就不熟悉,每次做到这里 总会遇到这个问题,解决一次 忘一次, 这记下来

 

 

  private static int THREAD_NUM = 10;  线程总数

  private AtomicInteger threadNum = new AtomicInteger(0);   每个线程执行完 了 记录一个标记

es.shutdown(); 这个只能让线程池退出,并不能让 主线程推出,所以这里要给一个  next  标记,当线程池 关闭之后,告诉主线程,  这是主线程  继续向下执行;

 

ExecutorService es = Executors.newFixedThreadPool(THREAD_NUM);

    for (int i = 0; i < THREAD_NUM; i++) {

      es.execute(new InitLangFangData(loopStr));

    }

    boolean next = true;// 主线程退出标记

    while (next) {

      if (THREAD_NUM == threadNum.get()) {

        es.shutdown();   //这里是让  线程池推出使用的 ,但是主线程并没有退出

        if (es.isShutdown()) {

          next = false;

        }

      } else {

        Thread.sleep(5000);

      }

    }

 

 

class InitLangFangData extends Thread

  {

    private String loopStr;

 

    public InitLangFangData(String loopStr)

    {

 

      this.loopStr = loopStr;

    }

 

    public void run()

    {

      try {

        initData(loopStr);

      } catch (DataCellException e) {

        logger.error(e.getMessage(), e);

      } catch (IOException e) {

        logger.error(e.getMessage(), e);

      }

      threadNum.getAndIncrement();

    }

  }

分享到:
评论

相关推荐

    java源码包---java 源码 大量 实例

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    JAVA上百实例源码以及开源项目

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    JAVA上百实例源码以及开源项目源代码

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    java源码包4

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    Java核心面试题汇总(最新版)

    程序退出或者关闭,则虚拟机实例消亡,多个虚拟机实例之间数据不 能共享。这里所说的线程指程序执行过程中的一个线程实体。JVM 允许一个应用并发执行多个线程。 Hotspot JVM 中的 Java 线程与原生操作系统线程有直接...

    java源码包3

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    java源码包2

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构, 当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。...

    java 面试题 总结

    与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。...

    java大作业设计报告-JAVA聊天室.doc

    JAVA程序设计 多人聊天室 设计目的 Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高 性能、多线程和静态的语言。本次课程设计旨在应用JAVA编程语言中的网络通信,多线 程,...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构, 当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。...

    基于java的博网即时通讯软件的设计与实现

    关于java博网即时通讯软件的设计与实现 Server方面: ...使用eclipse作为即时通讯软件的开发工具,使用Socket建立通讯渠道,多线程实现多台计算机同时进行信息的传递,swing技术等进行实际开发相对比较

    超级有影响力霸气的Java面试题大全文档

    与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。...

    java7hashmap源码-java-skill:JavaSkill,Java技能

    程序退出或者关闭,则虚拟机示例消亡,多个虚拟机示例之间数据不能共享。 2.1.线程 ​ 这里所说的线程指程序执行过程中的一个线程实体。JVM 允许一个应用并发执行多个线程。Hotspot JVM 中的 Java 线程与原生操作...

    Java开发技术大全 电子版

    第8章Java的多线程机制266 8.1线程的概念266 8.1.1多线程的特点266 8.1.2线程的状态267 8.2Thread类268 8.2.1Thread类的构造方法268 8.2.2Thread类的常用方法268 8.3多线程程序的编写269 8.3.1利用Thread的...

    chatRoom 聊天室

    /* 创建10行10列的空多行文本域 */ jta.setEditable(false); /* 设置多行文本域为不可编辑 */ jta.setFont(f); /* 设置多行文本域字体 */ label = new JLabel(name + ":"); /* 创建带有用户名的文本标签 */ ...

    R2高性能数据库连接池v1.8改进版源码

    v1.8优化了超过maxUsingTime的链接的处理,(直接关闭超长链接,新建新链接放回池中),防止出现超长链接直接放回池中后原超长链接使用者仍存在此链接产生的preparedstatement并执行preparedstatement,造成此语句被...

    R2高性能数据库连接池v1.8源码

    v1.8优化了超过maxUsingTime的链接的处理,(直接关闭超长链接,新建新链接放回池中),防止出现超长链接直接放回池中后原超长链接使用者仍存在此链接产生的preparedstatement并执行preparedstatement,造成此语句被...

    net学习笔记及其他代码应用

    run()方法可以产生必须退出的标志来停止一个线程。 40.接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)? 答:接口可以继承接口。抽象类可以实现(implements)接口...

Global site tag (gtag.js) - Google Analytics