java中 ExecutorService,Executor,ThreadPoolExecutor的用法
2024-10-21 07:10:09
package com;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit; public class demo3 { public static void main(String[] args) {
// TODO Auto-generated method stub //test1();
//test2();
test3();
} static void test1(){
//ExecutorService的用法
ExecutorService fixedThreadPool = Executors.newFixedThreadPool(2);
for( int i=0;i<100;i++){
fixedThreadPool.execute(
new Runnable(){ public void run() {
System.out.println("====threadId="+Thread.currentThread().getId()); }
}
);
} } static void test2(){
Executor exec=new ThreadPerTaskExecutor();
exec.execute(new Runnable(){ @Override
public void run() {
// TODO Auto-generated method stub
System.out.println("ccccc"+Thread.currentThread().getId());
} }); } //ThreadPoolExecutor
static void test3(){ BlockingQueue<Runnable> queue = new LinkedBlockingQueue<Runnable>();
ThreadPoolExecutor threadPool = new ThreadPoolExecutor(2, 4, 5, TimeUnit.SECONDS,
queue, new ThreadPoolExecutor.AbortPolicy()); for(int i=0;i<100;i++){
threadPool.execute(new MyThread(i+""));
}
threadPool.shutdown(); } static class MyThread implements Runnable {
private String name; public MyThread(String name) {
this.name = name;
} @Override
public void run() {
// 做点事情
try {
Thread.sleep(1000); System.out.println(name+"===当前线程="+Thread.currentThread().getId() + " finished job!") ;
} catch (InterruptedException e) {
e.printStackTrace();
}
}
} } //execute的用法
class ThreadPerTaskExecutor implements Executor {
public void execute(Runnable r) {
new Thread(r).start();
}
}
最新文章
- 在 iTunes content中创建新的版本时,出现构建版本后面没有加号。
- asp.net.mvc 中form表单提交控制器的2种方法和控制器接收页面提交数据的4种方法
- generator函数
- ios7 Cocos2dx 隐藏状态栏设置
- 收缩Mysql的ibdata1文件大小方法
- php Late Static Bindings延迟静态绑定
- JavaScript、Ajax与jQuery的关系
- 关于MySQL insert into ... select 的锁情况
- iOS开发基础篇-Button基础
- [物理学与PDEs]第3章第3节 电导率 $\sigma$ 为无穷时的磁流体力学方程组 3.3 磁场线``冻结&#39;&#39;原理
- constructor C++ example
- 用.Net打造一个移动客户端(Android/IOS)的服务端框架NHM(四)——Android端Http访问类(转)
- Inotify+rsync实现实时数据同步
- nopcommerce 常用属性验证
- cursor:hand &; cursor:pointer
- POJ2891 Strange Way to Express Integers
- Kali-linux服务的指纹识别
- ngModelController的方法和属性的使用
- js 代码执行时间
- Echarts主题颜色