最近在网上看到一篇好文,里面有关于线程池的框架,感觉很是不错,先把代码贴出:
import java.util.LinkedList;
public class WorkQueue {
private final int nThreads;
private final PoolWorker[] threads;
private final LinkedList queue;
public WorkQueue(int nThreads) {
this.nThreads = nThreads;
queue = new LinkedList();
threads = new PoolWorker[nThreads];
for (int i = 0; i < nThreads; i++) {
threads[i] = new PoolWorker();
threads[i].start();
}
}
public void execute(Runnable r) {
synchronized (queue) {
queue.addLast(r);
queue.notify();
}
}
private class PoolWorker extends Thread {
public void run() {
Runnable r;
while (true) {
synchronized (queue) {
while (queue.isEmpty()) {
try {
queue.wait();
} catch (InterruptedException ignored) {
}
}
r = (Runnable) queue.removeFirst();
}
// If we don't catch RuntimeException,
// the pool could leak threads
try {
r.run();
} catch (RuntimeException e) {
// You might want to log something here
}
}
}
}
}
分配固定大小的线程池,当没有工作是线程出去休眠状态,而当任务到来,唤醒任一个线程工作,代码不长,但清晰明了。
分享到:
相关推荐
异步线程池框架,支持线程池动态变更&监控&报警异步线程池框架,支持线程池动态变更&监控&报警异步线程池框架,支持线程池动态变更&监控&报警异步线程池框架,支持线程池动态变更&监控&报警异步线程池框架,支持...
Linux C++线程池框架是一种高效且可扩展的并发编程解决方案,它允许程序在执行大量短暂任务时降低系统开销,提高系统资源利用率。线程池通过预先创建一组线程,将任务分配给这些线程执行,而不是每次需要时创建新...
Linux C++线程池封装框架是一种高效的多线程执行机制,它通过高度抽象化和动态伸缩性,降低了线程创建和销毁的开销,...理解并正确使用线程池框架是提升C++程序性能的关键,同时也需要注意线程间同步带来的额外开销。
### Linux C++线程池框架解析 #### 一、引言与需求背景 在现代网络服务领域,诸如Web服务器、Email服务器及数据库服务器等,面临着一个共同挑战:短时间内需处理大量连接请求,而单次请求处理时间相对短暂。传统多...
《hippo4j动态线程池框架:深入解析与应用》 hippo4j动态线程池框架是一款高效、灵活的Java线程池管理工具,主要用于优化多线程环境下的任务调度与执行。该框架的核心在于其动态调整线程池大小的能力,能够根据系统...
异步线程池框架在现代软件开发中扮演着至关重要的角色,特别是在高并发、高性能的系统中。Hippo4j,作为一个这样的框架,提供了一种高效且灵活的方式来管理线程资源,支持线程池的动态变更、监控以及报警功能,而...
非阻塞线程池框架是一种高效的任务执行机制,它的核心理念是通过避免线程之间的等待,从而提升系统整体的并发性能。在传统的阻塞线程池中,如果一个任务正在执行,其他线程必须等待其完成才能获取CPU资源,这在高...
Linux环境下,C++线程池框架的设计旨在优化多线程应用程序的性能,通过预先创建一组线程并管理它们,以适应不同任务负载的变化。线程池的引入解决了传统多线程模型中频繁创建和销毁线程导致的开销问题,尤其在处理...
Linux C++线程池框架是一种高效且灵活的多线程执行模型,主要目的是为了优化处理大量并发任务的场景,如网络服务器。线程池通过预创建线程并维护一个线程池来降低线程创建和销毁的开销,提高系统的整体性能。 ...
通过使用这样的线程池框架,开发者可以更好地控制应用程序的并发行为,降低内存使用,提高响应速度,从而为用户提供更优质的体验。 总的来说,"android缓存线程池的一个框架"是Android开发者工具箱中的一项重要工具...
Java中线程池框架核心代码分析
强大的动态线程池框架,附带监控报警功能。支持 JDK、Tomcat、Jetty、Undertow 线程池;Dubbo、Dubbox、Kafka、RabbitMQ、RocketMQ、Hystrix 消费线程池(更多框架线程池还在适配中)。内置两种使用模式:轻量级依赖...
线程池使用基本框架,快速掌握线程池技术
Java线程池框架是Java并发处理的核心工具,它允许开发者高效地管理多个并发任务,避免了频繁创建和销毁线程的开销。线程池通过维护一组可重用的线程来提高系统的性能和响应性。本文将深入探讨Java线程池的结构、常见...
Java线程池是Java并发编程中的重要组成部分,它有效地解决了多线程环境下频繁创建和销毁线程带来的性能损耗。在Java中,线程池通过`Executor`接口和`ThreadPoolExecutor`类来实现,允许开发者更好地管理和控制线程的...
Hippo4J 是一个强大的动态线程池,附带监控报警功能,内置两种使用模式:轻量级依赖配置中心以及无中间件依赖版本。基于 美团动态线程池 设计理念开发,针对线程池增强 动态调参、监控、报警功能。 通过 Web 控制台...
NULL 博文链接:https://tywo45.iteye.com/blog/1513946