스레드 병발의 주 스레드와 수호 스레드 통신 방식
package policequerytest.test;
import java.util.concurrent.TimeUnit;
/**
*
* @author User
*/
public class Test2 {
public static void main(String[] args) {
Data data = new Data();
MainThread mainThread = new MainThread(data);
mainThread.run();
}
private static class MainThread implements Runnable {
private Data data;
public MainThread(Data data) {
this.data = data;
}
@Override
public void run() {
int plus = data.plus();
Thread childThread = new Thread(new ChildThread(Thread.currentThread(), data));
childThread.setDaemon(false);
childThread.start();
System.out.println(Thread.currentThread().getName() + "---" + plus);
try {
TimeUnit.MILLISECONDS.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
private static class ChildThread implements Runnable {
private Thread mainThread;
private Data data;
public ChildThread(Thread mainThread, Data data) {
this.mainThread = mainThread;
this.data = data;
}
@Override
public void run() {
while (mainThread.isAlive()) {
int reduce = data.reduce();
System.out.println(Thread.currentThread().getName() + "---" + reduce);
try {
TimeUnit.MILLISECONDS.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
/**
* :
*/
private static class Data {
private int i = 50;
public String getTicket() {
return ticket;
}
public void setTicket(String ticket) {
this.ticket = ticket;
}
private String ticket;
public synchronized int plus() {
return i++;
}
public synchronized int reduce() {
return i--;
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Dialog에서 EditText가 키보드로 덮어쓰지 않도록 키보드가 입력 상자 아래에 계속 있습니다텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.