标签:方法 方式 rmi lock int false generate executors rgs
Java线程2Executors是一个工厂类,可以调用他来创建各种线程池,
ExecutorService是线程池的接口,通过这个可以调用
submit(Runnable runn);将线程加入到线程池中,按照一定的规则来执行添加的线程,返回值为Future<?>
submit(Callable<T> call);返回值为Future<T>
shutdown();调用这个方法后,就不能在向线程池中添加线程或者是任务,等待加入到线程池中的线程执行完。
isShutdown();没有调用shutdown()时是false,调用后是true
isTerminated();调用shutdown()后,并且所有的线程执行完,则是true,否则是false
以缓存线程为例:
package cn.com.theadpool;
import java.util.Random;
public class WorkTask implements Runnable {
private int index;
public WorkTask(int index){
this.index = index;br/>}
@Override
public void run() {
// TODO Auto-generated method stub
Random random = new Random();
int ra = random.nextInt(10000);
try {
Thread.sleep(ra);
System.out.println(index);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package cn.com.theadpool;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class TestMain {
public static void main(String[] args) {
// TODO Auto-generated method stub
ExecutorService es = Executors.newCachedThreadPool();
for(int i=0;i<10;i++) {
es.submit(new WorkTask(i));
}
}
}
Timer和TimerTask的关系相当于Thread和Runnable的关系,但是有不同之处。
TimerTask的创建需要实现run()方法,这个方法中的业务就是要定时执行的任务。
而Timer中的方法schedule就是设置TimerTask并且设置执行的时间和每隔多久执行的设置。
标签:方法 方式 rmi lock int false generate executors rgs
原文地址:http://blog.51cto.com/xiaoshunzi/2349960