2つのスレッドを1秒おきに交互に印刷
847 ワード
1.Runnableインタフェースを実現し、その中のrun方法に同期ロックを加える.
2、2つのスレッド、strat()をインスタンス化します.
3、ちょうどスレッドを学んで、このように漏れがないことを知らないで、達人の指摘を歓迎します
class RunnableDemo implements Runnable {
public void run() {
//start 1
synchronized (this) {
int a = 0;
for(int i=0;i<50;i++) {
try {
Thread.sleep(1000);
if(a==1) {
wait();
a=0;
}
notify();
if(a==0) {
System.out.println(Thread.currentThread().getName() + ":"+i);
a=1;
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
2、2つのスレッド、strat()をインスタンス化します.
public class ThreadDemo03 {
public static void main(String[] args) {
RunnableDemo r1 = new RunnableDemo();
Thread t1 = new Thread(r1,"A");
Thread t2 = new Thread(r1,"B");
t1.start();
t2.start();
}
}
3、ちょうどスレッドを学んで、このように漏れがないことを知らないで、達人の指摘を歓迎します