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

如何令java线程池中线程超过5分钟时该线程自杀

    博客分类:
  • java
 
阅读更多
用双线程实现。他杀。
每当一个线程从池中被取出的时候,给该线程分配一个UUID用于标志此次任务,同时启动另外一个杀手线程开始计时(即sleep),并且该杀手线程持有同样UUID用于寻找要杀死的目标。

当杀手觉醒后即刻检查:
  1.如果目标线程已归还到池中,说明目标线程在规定时间前已结束。则不做任何操作。
  2.如果目标线程还在池外,但是其UUID与自己所持目标UUID不一致,说明所监视的线程正常结束后被再次取出使用。交由另外一个杀手线程处理,本杀手不做任何操作。
  3.如果目标线程仍在池外并且所持UUID与目标UUID一致(bingo!),则杀死该线程,并把尸体归还池中。

public void run() {
while (true) {
    if (Thread.currentThread().isInterrupted()) {
        return;
    }
    // do something
    Thread.sleep(sleepTime);
} catch (InterruptedException e) {
    Thread.currentThread().interrupt();
}
分享到:
评论

相关推荐

    java线程池使用后到底要关闭吗

    在代码中,我们创建了一个线程池,然后执行一个打印任务,打印出当前java进程的总线程数。结果显示,在创建到15万个线程时,内存占用百分百后java应用崩溃。说明线程未被回收。 因此,使用完线程池后一定要关闭,...

    java线程池完整代码

    Java 线程池是 Java 语言中的一个重要概念,它允许开发者创建和管理多个线程,以提高程序的并发性和性能。下面是对给定文件的解析,包括 title、description、标签和部分内容的解析。 标题解析 标题 "Java 线程池...

    C#线程池 所有线程运行完毕

    在C#编程中,线程池(ThreadPool)是一种高效的线程管理机制,它允许开发者创建并管理多个线程,而无需直接操作线程对象。线程池中的线程可以复用,减少了创建和销毁线程的开销。当我们需要执行大量短生命周期的任务...

    Java线程池及观察者模式解决多线程意外死亡重启问题

    在Java中,`java.util.concurrent`包提供了`ExecutorService`接口及其实现,如`ThreadPoolExecutor`,来创建和管理线程池。 线程池的工作原理是通过维护一个工作线程集合,当提交任务时,线程池会从队列中选择一个...

    Java简单线程池 线程池中文文档

    简单的线程池程序+中文文档 包结构: com.tangkai.threadpool --SimpleThread.java 工作线程 --TestThreadPool.java 程序入口 --ThreadPoolManager.java 线程池管理类

    java线程池封装j

    Java线程池是一种高效管理线程的技术,它允许开发者预定义一组线程,根据任务的需要灵活调度,而不是每次需要执行任务时都创建新的线程。这种设计模式大大提高了系统的性能,减少了系统资源的消耗,特别是在高并发...

    Java 线程池的原理与实现

    - **keepAliveTime**:当线程池中线程数超过核心线程数时,多余的空闲线程存活的最长时间。 - **workQueue**:任务队列,用于存放未执行的任务,不同的队列实现有不同的特性,如无界队列、有界队列等。 - **...

    Java中的线程与线程池.pptx

    Java中的线程与线程池是程序设计中的关键概念,特别是在多任务并行处理和优化系统性能时。本文档深入探讨了这两个主题,旨在帮助开发者更好地理解和应用它们。 线程是为了充分利用CPU资源而引入的执行单元。在多...

    java线程池实例详细讲解

    在Java中,`ExecutorService`接口是线程池的主要入口,它是`java.util.concurrent`包的一部分,提供了创建、管理和控制线程池的功能。 线程池的核心概念包括以下几点: 1. **工作队列(Work Queue)**:线程池内部...

    java多线程查询数据库

    Java中的线程池是通过`java.util.concurrent.ExecutorService`接口和其实现类(如`ThreadPoolExecutor`)来创建的。线程池可以有效地管理线程资源,避免频繁创建和销毁线程带来的开销。通过设置线程池的参数(核心...

    Java 线程池.docx

    在Java中,通过使用线程池,我们可以预先创建一定数量的线程,这些线程在空闲时可以被复用,从而避免了每次创建新线程时的系统开销。此外,线程池还可以控制并发量,防止过多线程导致系统资源耗尽,从而提高系统的...

    一个通用的Java线程池类

    目标:Java中多线程技术是一个难点,但是也是一个核心技术。因为Java本身就是一个多线程语言。本人目前在给46班讲授Swing的网络编程--使用Swing来模拟真实的QQ实时聊天软件。因为涉及到Socket编程,所以一定会使用多...

    java 线程池源代码

    在Java中,`java.util.concurrent`包下的`ExecutorService`、`ThreadPoolExecutor`和`Executors`类是实现线程池的主要工具。 `ThreadPoolExecutor`是线程池的具体实现,它的构造函数接受五个参数: 1. `...

    Java线程池文档

    线程池在Java中是通过`java.util.concurrent`包下的`ThreadPoolExecutor`类实现的。 线程池的主要作用是限制系统中执行线程的数量,通过预先配置好的线程数量,可以避免过多线程导致的资源浪费和系统拥挤,从而提高...

    JAVA线程池例子

    - `ThreadPoolExecutor`:这是Java中最常用的线程池实现,可以通过构造函数自定义线程池参数,如核心线程数、最大线程数、工作队列类型等。 - `Executors`类提供的预定义线程池: - `newFixedThreadPool`:固定...

    java线程池的源码分析.zip

    Java线程池是Java并发编程中的重要组成部分,它在多线程和高并发场景下扮演着关键角色。本文将深入探讨Java线程池的源码分析,并对比不同类型的线程池,以帮助开发者更好地理解和利用这一强大的工具。 首先,我们要...

    Java中多线程的使用线程池.docx

    `Executors` 类是一个静态工厂类,用于创建不同类型的线程池,如固定大小的线程池、单线程线程池、缓存线程池等。 4. **创建线程池**:使用`Executors`类的静态方法创建线程池,例如 `newFixedThreadPool(int ...

    在spring boot中使用java线程池ExecutorService的讲解

    在上面的代码中,我们创建了一个线程池配置类,使用 @Bean 注解创建了一个线程池实例,该实例具有 5 个核心线程,10 个最大线程,闲置线程存活 60 秒,使用 ArrayBlockingQueue 作为任务队列。 总结 在 Spring ...

    java线程池threadpool简单使用源码

    5. **ThreadGroup**:在Java中,每个线程都属于一个ThreadGroup,它提供了一种对线程进行分组管理的方式。虽然在现代多线程编程中,ThreadGroup的使用已经较少,但在线程池的实现中,它可能用于管理和监控线程的生命...

    java线程、线程池、xml解析入门

    Java中的ExecutorService接口及其实现类如ThreadPoolExecutor,允许我们自定义线程池的核心参数,如核心线程数、最大线程数、线程存活时间等。线程池能有效控制并发量,防止过多线程导致系统资源耗尽,同时提供定时...

Global site tag (gtag.js) - Google Analytics