Producer consumer
2491 단어 thread
package Thread;
public class PC {
int count;
int max = 20;
boolean start = true;
protected Object mutex=new Object();
public void produce() {
count++;
System.out.println("produce 1 ,total = " + count);
}
public void consume() {
count--;
System.out.println("consume 1 ,total = " + count);
}
public void makeProducer() {
(new Thread() {
public void run() {
synchronized (mutex) {
while (start) {
if (count < max) {
produce();
mutex.notifyAll();
} else {
System.out.println("max");
try {
mutex.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
}).start();
}
public void makeConsumer() {
(new Thread() {
public void run() {
synchronized (mutex) {
while (start) {
if (count > 0) {
consume();
mutex.notifyAll();
} else {
System.out.println("none");
try {
mutex.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
}).start();
}
public void stop() {
start = false;
}
public static void main(String[] args) throws Exception {
PC a = new PC();
a.makeProducer();
a.makeConsumer();
Thread.sleep(10000);
a.stop();
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Exception in thread main java.lang. NoClassDefFoundError 오류 해결 방법즉,/home/hadoop/jarfile) 시스템은 Hello World 패키지 아래의class라는 클래스 파일을 실행하고 있다고 오인하여 시스템의 CLASSPATH 아래 (일반적으로 현재 디렉터리를 포함) Hell...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.