Java中线程池

关于线程池,这里讲解一个自认为很简单的方法,就是可以创建一个池子,该池子里面有多个线程,用的时候直接拿就行,当然了用完之后会自动放回去。

ExecutorService pool = Executors.newFixedThreadPool(2);//创建一个含有两个线程的线程池
pool.submit(new MyRunnable());//在池子里拿一个线程去执行MyRunnable里的run方法
pool.shutdown();//关闭线程池
如果你创建了一个只有两个线程的池子,然而你去池子里拿了三次线程,那么这里也能执行,原因是第一个线程完成后会放回池子
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class MyExecutor {
    public static void main(String[] args) {
        ExecutorService pool = Executors.newFixedThreadPool(2);
        pool.submit(new MyRunnable());
        pool.submit(new MyRunnable());
        pool.submit(new MyRunnable());
        pool.shutdown();
    }
}
public class MyRunnable implements Runnable {

    @Override
    public void run() {
        for (int i = 0; i < 3; i++) {
            System.out.println(Thread.currentThread().getName() + ":" + i);
        }
    }
}

这里可以看出线程1被执行了两次

相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页