Java가 여러 스레드 상태를 모니터링하는 간단한 사례
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
/**
*
*
* @author
*
*/
public class WatchThread {
/**
*
*
* @throws InterruptedException
*/
public void testThread() throws InterruptedException {
int threadNum = 10;
// countDown
CountDownLatch threadSignal = new CountDownLatch(threadNum);
//
Executor executor = Executors.newFixedThreadPool(threadNum);
for (int i = 0; i < threadNum; i++) { // threadNum
Runnable task = new TestThread(threadSignal);
//
executor.execute(task);
}
threadSignal.await(); //
// do work
System.out.println(Thread.currentThread().getName() + "+++++++ .");
}
/**
*
*/
public static void main(String[] args) throws InterruptedException {
WatchThread test = new WatchThread();
test.testThread();
}
/**
*
* @author jill
*
*/
private class TestThread implements Runnable {
private CountDownLatch threadsSignal;
public TestThread(CountDownLatch threadsSignal) {
this.threadsSignal = threadsSignal;
}
public void run() {
System.out.println(Thread.currentThread().getName() + " ...");
// do shomething
System.out.println(" ::::" + threadsSignal.getCount());
// 1
threadsSignal.countDown(); // finally
System.out.println(Thread.currentThread().getName() + " . "
+ threadsSignal.getCount() + " ");
}
}
}
이상의 이 자바가 여러 개의 스레드 상태를 감시하고 감시하는 간단한 실례는 바로 편집자가 여러분에게 공유한 모든 내용입니다. 여러분께 참고가 되고 저희를 많이 사랑해 주시기 바랍니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.