`
younglibin
  • 浏览: 1214206 次
  • 性别: 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或C++等支持多线程的编程语言中,多线程安全退出是一个关键概念。多线程允许程序同时执行多个任务,提高系统效率,但同时也引入了线程同步和资源管理的问题。这个实例源代码,...

    java通过线程控制程序执行超时(新)

    在Java编程中,控制程序执行超时是一项重要的任务,特别是在多线程环境下,我们可能需要确保某个任务不会无限制地运行下去,导致资源耗尽。本文将深入探讨如何使用Java的线程机制来实现程序执行的超时控制,同时也会...

    java多线程编程

    以上只是Java多线程编程的一部分基础知识,实际开发中还需要考虑线程的性能优化、线程安全问题以及如何优雅地关闭线程等复杂情况。深入理解并熟练掌握这些概念对于编写高效、稳定的多线程程序至关重要。

    Java多线程编程总结

    ### Java多线程编程总结 #### 一、Java线程:概念与原理 1. **操作系统中线程和进程的概念** - 当前的操作系统通常为多任务操作系统,多线程是实现多任务的一种手段。 - **进程**:指内存中运行的应用程序,每个...

    轻量级java多线程池demo

    本文将深入探讨一个轻量级的Java多线程池实现,这个实现允许线程间的通信,并提供了类似Akka Actor的调度功能。 首先,我们要理解Java中的线程池。线程池是一种线程使用模式,它维护一组可以重复使用的线程,避免了...

    线程关闭javacv关闭20190508.rar

    1. Java多线程的使用,包括线程的创建、启动和安全关闭。 2. JavaCV的FFmpegFrameRecorder类在视频录制和推流中的应用。 3. 线程安全和资源管理,尤其是在多线程环境中的数据同步和异常处理。 4. 实时视频流的启动和...

    Java多线程小结

    ### Java多线程小结 #### 一、多线程的概念与意义 多线程是Java编程中的一个重要概念,指的是程序在运行时可以同时执行多个线程的能力。它能够提高程序的性能,尤其是在多核处理器的环境下。多线程使得程序能够更...

    java多线程编程总结

    ### Java多线程编程总结 #### 一、Java多线程概述 Java多线程是Java编程语言中不可或缺的一部分,它允许程序同时处理多个任务,从而显著提高应用程序的性能和响应速度。Java5之前的版本虽然支持多线程,但在语言...

    超实用的Java并发多线程教程

    Java并发多线程是Java编程中的重要组成部分,它允许程序同时执行多个任务,极大地提高了程序的效率和响应性。在Java中,多线程主要通过`Thread`类、`Runnable`接口以及`ExecutorService`来实现。下面我们将深入探讨...

    JAVA(坦克大战,多线程管理).rar

    下面我们将深入探讨Java多线程管理和在游戏开发中的应用。 1. **Java多线程基础** - Java提供了内置的多线程支持,可以通过继承`Thread`类或实现`Runnable`接口创建线程。 - `start()`方法用于启动线程,`run()`...

    JAVA多线程的使用场景与注意事项总结

    Java多线程是Java语言中的一种重要机制,允许程序同时执行多个任务,以提高程序的执行效率和响应速度。在Java中,多线程可以通过继承Thread类、实现Runnable接口或使用线程池来创建。在使用多线程时,需要注意线程的...

    java多线程示例

    Java多线程是Java编程中的重要概念,它允许程序同时执行多个任务,提高了程序的效率和响应性。在Java中,实现多线程有两种主要方式:通过继承`Thread`类和实现`Runnable`接口。本示例将深入探讨这两种方法,并介绍`...

    Java 多线程编程核心技术

    《Java 多线程编程核心技术》是一本深入探讨Java平台多线程编程的著作,旨在帮助开发者全面理解和掌握多线程编程的关键概念和技术。通过实际案例的解析,本书旨在将理论与实践相结合,使读者能够有效地应用多线程...

    java多线程实现一个控制台聊天室

    ### Java多线程实现控制台聊天室 #### 一、项目概述 本项目采用Java语言,利用多线程技术实现了一个简单的控制台聊天室。该聊天室具备基本的客户端与服务器端交互功能,用户可以通过控制台窗口进行文字聊天交流。 ...

    java多线程核心编程技术

    ### Java多线程核心编程技术 #### 一、Java多线程基础 ##### 1.1 线程的概念 在计算机科学中,线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。在Java中,通过创建`...

    Java多线程程序设计详细解析.pdf

    在深入探讨Java多线程程序设计之前,我们需要了解多线程的概念以及它在程序设计中的重要性。多线程是指一个进程内部可以同时执行多个线程,每个线程负责处理程序中的不同部分。在Java中,线程由java.lang.Thread类来...

    Java多线程编程总结 fly

    Java多线程编程是Java开发中的重要组成部分,它允许程序同时执行多个任务,极大地提高了程序的效率和响应性。在Java中,实现多线程有两种主要方式:通过继承`Thread`类或者实现`Runnable`接口。 ### 继承Thread类 ...

    WHUT-java多线程实验-第二周-异常处理.zip

    在这个实验中,你可以通过创建多个线程,模拟并发执行,并在其中引发和处理异常,以此加深对Java多线程异常处理的理解。"源码"文件将包含实现这些概念的示例代码,而"要求"文件则会给出具体的实验任务和目标,帮助你...

    一个JAVA多线程实例

    Java多线程是Java编程中的重要概念,它允许程序同时执行多个任务,提高了程序的效率和响应性。在Java中,实现多线程有两种主要方式:通过实现`Runnable`接口和继承`Thread`类。 1. 实现Runnable接口: 这种方式更...

Global site tag (gtag.js) - Google Analytics