子线程先运行10次 ,主线程再运行10次,如此反复的运行20次

来源:互联网 发布:阿里云 任务调度 编辑:程序博客网 时间:2024/05/30 04:33

代码如下:

package com.lanqiao.facetest;public class ThreadMain {public static void main(String[] args) {Object obj = new Object();int a = 0;Thread1 thr = new Thread1(obj, a);thr.start();synchronized(obj){//当a==0时,主线程等待if(a==0){try {obj.wait();} catch (InterruptedException e) {e.printStackTrace();}}for(int i=1;i<=5;i++){for(int j=1;j<=3;j++){System.out.println("主线程"+i);}a--;//唤醒同步锁线程obj.notify();try {//当前线程进入等待状态,释放锁obj.wait();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}}
package com.lanqiao.facetest;public class Thread1 extends Thread{Object obj;int a;public Thread1(Object obj,int a){this.obj=obj;this.a=a;}public void run(){synchronized (obj) {//当a=1时,当前线程等待,释放锁if(a==1){try {obj.wait();} catch (InterruptedException e) {e.printStackTrace();}}for(int i = 1;i<=5;i++){for(int j = 1;j<=3;j++){System.out.println("子线程");}a++;//唤醒同步锁线程obj.notify();try {//当前线程等待,释放锁obj.wait();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}}



阅读全文
0 0
原创粉丝点击