java设置开启线程个数
时间: 2023-07-01 16:25:12 浏览: 42
在Java中,可以通过设置线程池的大小来控制开启的线程个数。下面是一个示例代码:
```java
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ThreadDemo {
public static void main(String[] args) {
int numThreads = 10; // 设置线程池大小为10
ExecutorService executor = Executors.newFixedThreadPool(numThreads);
// 往线程池中添加任务
for (int i = 0; i < 20; i++) {
Runnable worker = new WorkerThread("" + i);
executor.execute(worker);
}
// 关闭线程池
executor.shutdown();
while (!executor.isTerminated()) {
}
System.out.println("Finished all threads");
}
}
class WorkerThread implements Runnable {
private String message;
public WorkerThread(String message) {
this.message = message;
}
public void run() {
System.out.println(Thread.currentThread().getName() + " Start. Message = " + message);
processMessage();
System.out.println(Thread.currentThread().getName() + " End.");
}
private void processMessage() {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
```
在上面的示例代码中,通过调用`Executors.newFixedThreadPool(numThreads)`方法来创建一个线程池,并且设置线程池的大小为10。然后往线程池中添加20个任务,由线程池来管理和执行这些任务。因为线程池的大小只有10,所以会有10个线程同时执行任务,另外的10个任务会等待前面的任务执行完毕后再执行。最后,调用`executor.shutdown()`方法来关闭线程池。