主类:test.java
import java.io.IOException;
public class test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
NetworkService instance = new NetworkService(100);
instance.serve();//开始执行线程池
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
2、另外建的一个线程主程序
import java.io.IOException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
class NetworkService {
private final ExecutorService pool;
public NetworkService(int poolSize) throws IOException {
pool = Executors.newFixedThreadPool(poolSize);
}
public void serve() {
for (int i =0;;i++) {
pool.execute(new Handler("开始执行一个任务:",i+1));
}
}
}
class Handler implements Runnable {
private final String taskcontent;
private final int index;
Handler(String taskcontent,int index) {
this.index = index;
this.taskcontent = taskcontent; }
public void run() {
System.out.println(taskcontent+index);
}
}
在for里面将任务全部放入到线程池里,最多只能容纳100个任务,然后执行的顺序会有所不同。
分享到:
相关推荐
1. 线程池管理器(ThreadPool):用于创建并管理线程池,包括创建线程池,销毁线程池,添加新任务。 2. 工作线程(PoolWorker):线程池中线程,在没有任务时处于等待状态,可以循环的执行任务。 3. 任务接口(Task...
在Java中,`java.util.concurrent`包提供了`ExecutorService`接口和`ThreadPoolExecutor`类,它们是实现线程池的关键组件。 为了实现文件内容的行反转,我们可以先按行读取文件,然后反向存储每一行,最后再将这些...
1. **创建ExecutorService实例**:根据需求选择合适的构造方法创建线程池。 2. **提交任务**:使用`execute(Runnable task)`方法提交Runnable任务,或者使用`submit(Callable<T> task)`提交Callable任务并获取Future...
Java中,`java.util.concurrent`包提供了ExecutorService接口,它是线程池的主要接口。常见的实现类有ThreadPoolExecutor,它允许我们自定义线程池的核心参数,如核心线程数、最大线程数、线程存活时间、工作队列...
#### 创建线程池 在Java中,可以通过`Executors`工具类创建不同类型的线程池: - `newFixedThreadPool(int nThreads)`:创建固定大小的线程池。 - `newCachedThreadPool()`:创建一个可缓存的线程池,当线程数超过...
在Java中,`java.util.concurrent.ExecutorService`接口提供了创建和管理线程池的能力,而`ThreadPoolExecutor`类则是其最常用的实现之一。`ThreadPoolExecutor`允许我们自定义线程池的关键参数,如核心线程数、最大...
例如,Tomcat线程池提供了详细的MBean接口,允许管理员在运行时监控和调整线程池的状态,这对于故障排查和性能调优非常有帮助。 总结来说,Tomcat的线程池源码设计精巧,兼顾了性能与可管理性。通过深入学习和理解...
ExecutorService是一个线程池接口,它继承了Executor接口,并提供了一些用于任务提交与执行管理的扩展方法。 在代码中,首先创建了一个ServerSocket对象,它监听特定端口(本例中为8000)。然后使用ExecutorService...
本文将详细讲解ExecutorService的原理、使用场景以及如何通过Executors类创建线程池。 1. 为什么使用线程池 线程池的主要目的是为了优化线程的生命周期管理。在处理大量并发任务时,如果每个任务都单独创建线程,...
在实际应用中,频繁创建和销毁线程会带来额外的开销。为了解决这个问题,Java提供了ExecutorService和ThreadPoolExecutor,它们是线程池的概念。线程池可以预先配置好一定数量的线程,当有新的任务提交时,线程池会...
Java中,我们通常使用`Executors`类提供的静态工厂方法来创建线程池,如`newFixedThreadPool(int nThreads)`创建固定大小的线程池,`newSingleThreadExecutor()`创建只有一个线程的线程池,`newCachedThreadPool()`...
3. ThreadPoolExecutor:是ExecutorService的一个重要实现,提供了创建线程池的核心功能,包括线程池的维护、任务队列的管理等。 4. ScheduledExecutorService:继承自ExecutorService,用于处理需要定时或周期性...
在`TreadPoolDemo`这个示例项目中,可能包含了如何在Android中使用`ExecutorService`创建线程池,提交任务,以及处理任务结果的代码实现。通过学习和理解这个示例,开发者可以更好地掌握`ExecutorService`在Android...
1. **ExecutorService**: Java的`ExecutorService`接口是线程池的主要入口点,它提供了一种管理和控制线程的方法,如提交任务、关闭线程池等。 2. **ThreadPoolExecutor**: `ThreadPoolExecutor`是`ExecutorService`...
通过这个"android线程池项目",你可以亲自实践如何在Android中创建线程池,提交任务,以及观察其运行效果。通过代码分析和调试,你将深入理解线程池的工作机制,提升你的Android开发技能。记得在实践中不断思考和...
当我们创建一个`ExecutorService`实例并提交任务时,我们可以通过调用`shutdown()`方法来关闭线程池。然而,标题指出"ExecutorService.shutdown()应该是在线程执行完毕后,才会去关闭",这意味着`shutdown()`方法...
在Java中,`ExecutorService`接口是线程池的主要入口,它是`java.util.concurrent`包的一部分,提供了创建、管理和控制线程池的功能。 线程池的核心概念包括以下几点: 1. **工作队列(Work Queue)**:线程池内部...
首先,我们需要了解Java中的ExecutorService接口,它是线程池的核心接口。通过ExecutorService,我们可以提交Runnable或Callable任务,并控制线程的执行。Java提供了一些内置的ExecutorService实现,如...
二、Java的ExecutorService接口 Java的`java.util.concurrent`包提供了`ExecutorService`接口,它是线程池的主要入口。通过实现这个接口,我们可以控制线程的执行方式,如设置最大线程数、处理任务队列等。`...
3. **Android中的线程池**:在Android中,我们可以使用Java的`ExecutorService`和`ThreadPoolExecutor`来创建线程池。`ExecutorService`是线程池的接口,提供了管理和控制线程的方法,如提交任务、关闭线程池等;`...