java一个线程池可以有多个工作对列吗?如何实现

author author     2023-05-13     833

关键词:

提供思路即可!满意则追分

首先建立ThreadPool 的处理机制,即Thread可以由外部设置一个Runnable对象来运行,没有任务的时候,可以等待,建立一个任务队列(taskQueue),通过任务的名称或ID来区分不同的任务,可以指派每类任务采用不同的队列,如:
TaskQueue Extends Queue

object taskLock = null ;

Runnable Dequeue ()

synchronized (taskLock)

while (getCount () <= 0)

taskLock.Wait () ;

return super.dequeue () ;


void Enqueue (Runnable runObject)

synchronized (taskLock)

super.enqueue (runObject) ;
taskLock.NotifyAll () ;





然后为不同的任务线程分配不同的队列。线程组赛在队列的DeQueue函数中,获取后即执行。
SingleThread Extends Thread

Runnable runObject ;
TaskQueue queue ;
public void run ()

while (true)

// if (runObject == null)
runObject = queue.Dequeue () ;
try
runObject.run () ;




ThreadPool接到新任务时,使用对应的Enqueue放入队列,并唤醒执行线程。
还需要补充一些任务配置,如:任务队列数量、名称等,是否要动态调整等等。
参考技术A 可以的,但不好弄

多线程编程—线程池的实现

...间,增加处理器单元的吞吐能力。线程池是多线程编程的一个必要组件,并且对于很多编程人员都是透明的,更是神秘的。有幸能为大家解析其中缘由,尚有不妥之处,欢迎大家抛砖。 线程池的概念,是一个用来管理一组执... 查看详情

什么叫线程池?线程池如何使用?

1、什么是线程池:java.util.concurrent.Executors提供了一个java.util.concurrent.Executor接口的实现用于创建线程池多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力... 查看详情

java应用中可以有多少线程池

可以有多少个线程池的问题,如果假设每个线程池中只有一个线程,那么就转化为应用中可以有多少个线程这个跟jvm的配置,操作系统相关每个线程在jvm中默认是分配1m大小的内存,当然可以调整,因此这个可用线程数的多少跟... 查看详情

python中如何快速实现一个线程池?

...然会想到多线程。但如果任务非常多,我们不可能每一个任务都启动一个线程去处理,这个时候最好的办法就是实现一个线程池,至于池子里面的线程数量可以根据业务场景进行设置。比如我们实现一个有10个线程的... 查看详情

java线程池概念原理简单实现

线程池的思想概述我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结東了,这样频繁创建线程就会大大降低系统的... 查看详情

深入源码分析java线程池的实现原理

...的使用。如何高效的使用这些资源是我们编程优化演进的一个方向。今天说的线程池就是一种对CPU利用的优化手段。网上有不少介绍如何使用线程池的文章,那我想说点什么呢?我希望通过学习线程池原理,明白所有池化技术的... 查看详情

java常见的线程池有哪些?(代码片段)

1、什么是线程池java.util.concurrent.Executors提供了一个java.util.concurrent.Executor接口的实现用于创建线程池多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞... 查看详情

java常见的线程池有哪些?(代码片段)

1、什么是线程池java.util.concurrent.Executors提供了一个java.util.concurrent.Executor接口的实现用于创建线程池多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞... 查看详情

java线程池

... 当系统并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要消耗大量的系统资源。 所以需要一个办法使得线程可以... 查看详情

java面试:多线程与并发

关键词多线程,并发,线程池多线程Q:如何新建一个线程?继承Thread,或者实现Runnable接口,或者通过Callable接口实现Q:线程池有没有了解过?为什么要用线程池?新建线程的开销太大了,使用线程池可以节省系统资源。Q:线程池... 查看详情

vc如何创建线程池

如何使用VC/MFC创建一个线程池有许多应用程序创建的线程花费了大量时间在睡眠状态来等待事件的发生。还有一些线程进入睡眠状态后定期被唤醒以轮询工作方式来改变或者更新状态信息。线程池可以让你更有效地使用线程,它... 查看详情

java并发编程:线程池

一、为什么使用线程池使用线程的时候直接就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系... 查看详情

自己实现一个简单的线程池

...的原理前,我们先自己想一下,如果我来写,那如何实现一个线程池?首先要定义一个存放所有线程的集合;另外,每有一个任务分配给线程池,我们就从线程池中分配一个线程处理它。但当线程池中的线程都在运行状态,没有... 查看详情

java并发编程:线程池的使用

...  在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:  如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频... 查看详情

Java 性能进程与线程

...时间】:2011-12-1518:04:33【问题描述】:我正在用Java实现一个工作池。这本质上是一个完整的对象负载,它们将拾取数据块,处理数据,然后存储结果。由于IO延迟,工作线程的数量将明显多于处理器内核。服务器专门用于此任务... 查看详情

线程池(代码片段)

...写的时候再追加吧。 1.线程池相关的类Executor:只有一个execute(Runnablecommand)方法;ExecutorService:对Executor接口进行了扩展,增加submit(Callable<T>task),关系线程池,执行一组任务等方法。ExecutorServiceexecutor=...;//线程池的生成E... 查看详情

java线程和线程池

一、Java线程  几个概念:  进程:一个进程包括由操作系统分配的内存空间,包含一个或多个线程。一个线程不能独立的存在,它必须是进程的一部分。一个进程一直运行,直到所有的非守护线程都结束运行后才能结束。... 查看详情

我可以在 MFC CListBox 中添加多个列吗?

...CListBox?【发布时间】:2013-05-2909:52:52【问题描述】:我有一个带有CListBox的对话框。我必须在此列表框中添加3列。有什么方法可以在CListBox中有几个不同的列?或者CListCtrl可以在这方面提供帮助吗?【问题讨论】:是的,这就是C... 查看详情