多线程学习笔记二

/**
 * 传统线程
 * 
 * @time 下午06:15:19
 * @author retacn yue
 * @Email [email protected]
 */
public class TraditionalThread {


/**
* 多线程并发学习

* @param args
*/
public static void main(String[] args) {


// java5中的线程池
// 新一个包含三个线程的线程池
ExecutorService pool = Executors.newFixedThreadPool(3);
// 需要几个线程就new几个
// ExecutorService pool = Executors.newCachedThreadPool();
for (int j = 0; j < 10; j++) {
final int taskId = j;
pool.execute(new Runnable() {
public void run() {
for (int i = 0; i < 5; i++)
try {
Thread.sleep(200);
System.out.println(Thread.currentThread().getName() + "loop of" + i + "task of" + taskId);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
}


System.out.println(" thread is end");
pool.shutdown();
// 直接关闭
// pool.shutdownNow();


}


// 传统线程
private void thread1() {
new Thread() {
public void run() {
while (true) {
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName());
}
}
}.start();


new Thread(new Runnable() {


@Override
public void run() {
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName());
}
}) {
// 如果子类有run方法将不会调用父类的runable方法
// public void run() {


// }
}.start();


}
}

你可能感兴趣的:(多线程学习笔记二)