public static void main(String[] args) {
//创建既定大小的缓冲池。
// ExecutorService threadPool = Executors.newFixedThreadPool(3);
//创建一个缓冲线程池,按照线程的数量来决定缓冲池的大小。
ExecutorService threadPool = Executors.newCachedThreadPool();
//创建一个单线程的缓冲池,始终保持该线程池中有一个线程,如果当前线程结束,那么该方法会再创建一个线程来接替前一个线程。
// ExecutorService threadPool = Executors.newSingleThreadExecutor();
for(int i=1;i<=12;i++){
final int task = i;
threadPool.execute(new Runnable(){
static{
System.out.println("task is committed!");
}
@Override
public void run() {
for(int j=1;j<=5;j++){
try {
Thread.sleep(20);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + " is looping of " + j + " for task of " + task);
}
}
});
}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("all of 10 tasks have committed! ");
红色代码有错误,说是内部类中不能定义静态代码块,我想问的是:我在new一个Runnable对象的时候,是不是就创建了一个任务,怎样在这个任务初始化的时候输出任务已经创建这样的标识?通过静态代码快看来是不行了,还有别的方法么? |