package com.thread;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
* 利用java1.5以后的线程池技术
* @author djk
*
*/
public class ThreadTest
{
public static void main(String[] args)
{
// 2个线程
ExecutorService executorService = Executors.newFixedThreadPool(2);
executorService.submit(new Runnable() {
@Override
public void run() {
doSomeThing(1,"thread1");
}
});
executorService.submit(new Runnable() {
@Override
public void run() {
doSomeThing(2,"thread2");
}
});
executorService.submit(new Runnable() {
@Override
public void run() {
doSomeThing(3,"thread3");
}
});
executorService.shutdown();
}
/**
* 线程执行的方法
* @param i
* @param name
*/
public static void doSomeThing(int i,String name)
{
System.out.println("method begin and id="+i+"threadName ="+name);
try {
Thread.sleep(2000);
} catch (Exception e) {
}
System.out.println("method end and id="+i+"threadName ="+name);
}
}
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
* 利用java1.5以后的线程池技术
* @author djk
*
*/
public class ThreadTest
{
public static void main(String[] args)
{
// 2个线程
ExecutorService executorService = Executors.newFixedThreadPool(2);
executorService.submit(new Runnable() {
@Override
public void run() {
doSomeThing(1,"thread1");
}
});
executorService.submit(new Runnable() {
@Override
public void run() {
doSomeThing(2,"thread2");
}
});
executorService.submit(new Runnable() {
@Override
public void run() {
doSomeThing(3,"thread3");
}
});
executorService.shutdown();
}
/**
* 线程执行的方法
* @param i
* @param name
*/
public static void doSomeThing(int i,String name)
{
System.out.println("method begin and id="+i+"threadName ="+name);
try {
Thread.sleep(2000);
} catch (Exception e) {
}
System.out.println("method end and id="+i+"threadName ="+name);
}
}
本文介绍如何利用Java 1.5以后的线程池技术来管理并发任务,通过创建固定线程池实例并提交多个Runnable任务,确保高效执行多个操作而不阻塞主线程,每个任务执行前后打印日志跟踪执行过程。
170万+

被折叠的 条评论
为什么被折叠?



