子线程父线程交替执行(示例)

来源:互联网 发布:申威26010 知乎 编辑:程序博客网 时间:2024/06/05 22:20
package cn.waitandnotify2;public class RunnableTest {private boolean flag = true;public synchronized void zi(int change) {if (!flag) {try {this.wait();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}for (int i = 1; i <= 5; i++) {System.out.println("子线程" + change + "执行" + i + "次");}flag = false;this.notify();}public synchronized void fu(int change) {if (flag) {try {this.wait();} catch (InterruptedException e) {// TODO Auto-gen*erated catch blocke.printStackTrace();}}for (int i = 1; i <= 5; i++) {System.out.println("父线程" + change + "执行" + i + "次");}flag = true;this.notify();}}

package cn.waitandnotify2;public class Test {/** * @param args */public static void main(String[] args) {new Test().work();}public void work() {final RunnableTest test = new RunnableTest();new Thread(new Runnable() {public void run() {for (int i = 1; i <= 3; i++) {test.zi(i);}}}).start();for (int i = 1; i <= 3; i++) {test.fu(i);}}}

原创粉丝点击