版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/maguoliang110/article/details/82229053
尽管面临很多挑战,多线程有一些优点使得它一直被使用。这些优点是:
- 资源利用率更好
- 程序设计在某些情况下更简单
- 程序响应更快;
比如我们在批量操作数据时候,采用多线程往往可以节省成倍的时间;提高了系统资源利用率;
import java.util.concurrent.*;
public class TestThred {
public static void main(String[] args) {
// ThreadPoolExecutor executor = new ThreadPoolExecutor(5, 10, 200, TimeUnit.MILLISECONDS,
// new ArrayBlockingQueue<Runnable>(0));
ExecutorService executor = Executors.newCachedThreadPool();
for (int i = 0; i < 20; i++) {
MyTask myTask = new MyTask(i);
executor.execute(myTask);
// System.out.println("线程池中线程数目:" + executor.getPoolSize() + ",队列中等待执行的任务数目:" +
// executor.getQueue().size() + ",已执行玩别的任务数目:" + executor.getCompletedTaskCount());
}
executor.shutdown();
}
}
class MyTask implements Runnable {
private int taskNum;
public MyTask(int num) {
this.taskNum = num;
}
@Override
public void run() {
System.out.println("正在执行task " + taskNum);
try {
Thread.currentThread().sleep(4000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("task " + taskNum + "执行完毕");
}
}