java 스레드 탱크 확장 고정, 가변,

2527 단어
스레드 풀의 소개1 자주 사용하는 풀화 기술 C3P0 DBCP 2 스레드 풀의 파생이 빈번한 스레드 대상과 다중 스레드 사이를 상하문으로 전환하는 것은 시간과 자원을 많이 소모하기 때문에 JDK1.5에서 스레드 탱크 기술 3은 스레드 탱크 Exector 4 스레드 탱크의 생성 1을 사용하여 고정된 크기의 스레드 탱크를 만든다(가장 자주 사용하는 방법)
ExecutorService pool = Executors.newFixedThreadPool(2); Runnable task = new Runnable() { @Override public void run() { while (true) { try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(Thread.currentThread().getName()); } } }; pool.execute(task); pool.execute(task); pool.execute(task);//스레드 탱크 밑에 두 개밖에 없어요. 지금 이 임무는 대기 대기열에서 줄을 서서 기다리고 있어요.
	2            

     
     
     
     
  • 1

ExecutorService pool = Executors.newCachedThreadPool();
Runnable task = new Runnable() {
@Override
public void run() {
while (true) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName());
}
}
};
pool.execute(task);
pool.execute(task);
pool.execute(task);

	3           

     
     
     
     
  • 1

ExecutorService pool = Executors.newSingleThreadExecutor();
Runnable task = new Runnable() {
@Override
public void run() {
while (true) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName());
}
}
};
pool.execute(task);
pool.execute(task);
pool.execute(task);

	4          

     
     
     
     
  • 1

ScheduledExecutorService threadPool = Executors.newScheduledThreadPool(2);
Runnable task = new Runnable() {
@Override
public void run() {
while (true) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName());
}
}
};
threadPool.schedule(task, 2000, TimeUnit.MILLISECONDS);

        

좋은 웹페이지 즐겨찾기