public class Thread_A {Output
public static void main(String[] args) {
스레드 Thread_B = new Thread(new Runnable() {
@Override
public void run() {
synchronized (this) {
int i=0;
동안(i< 100)
i++;
//자유 스레드 A
notify();
}
}
});
Thread_B.start()를 호출합니다.
synchronized(Thread_B) {
try {
System.out.println("스레드 A가 차단됨 - 스레드 B 대기 중"+
"완료");
//A
Thread_B.wait();
} catch (InterruptedException e) {
// TODO 자동 생성 catch block
e.printStackTrace();
}
System.out.println("스레드 B가 완료되었습니다 - 스레드 A가 해제되었습니다.");
}
}
}
스레드 A가 멈췄습니다. 스레드 B가 완료되기를 기다리는 중
스레드 B가 완료되었습니다. 스레드 A가 해제되었습니다
public class Sleep {Output
public static void main(String[] args) {
ThreadA a = new ThreadA();
a.start();
ThreadB b = 새로운 ThreadB();
b.start();
}
정적 클래스 ThreadA extends Thread{
@Override
public void run() {
try {
System.out.println("스레드 A");
수면(4000);
System.out.println("스레드 A: 4초 동안 잤습니다.");
} catch (InterruptedException e) {
// TODO 자동 생성 catch block
e.printStackTrace();
}
}
}
정적 클래스 ThreadB extends Thread{
@Override
public void run() {
System.out.println("스레드 B");
int 합계 = 0;
for(int i = 0 ; i < 50; i++)
sum +=i;
System.out.println("스레드 B: 완료");
}
}
}
스레드 A프로세스 A는 프로세스 B보다 먼저 시작되었지만 B는 프로세스 A가 진행되는 동안 처리를 수행했습니다. 자고 있었고 첫 번째
스레드 B
스레드 B: 완료했습니다
스레드 A: 4초 동안 잤습니다
Please disable your ad blocker and refresh the window to use this website.