传统线程同步_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 传统线程同步

传统线程同步

 2018/1/5 19:16:18  firkeuuuu  程序员俱乐部  我要评论(0)
  • 摘要:/***主线程和子线程轮流执行*/publicclassTraditionalThreadTest{publicstaticvoidmain(String[]args){newTraditionalThreadTest().init();}publicvoidinit(){finalJobjob=newJob();newThread(newRunnable(){@Overridepublicvoidrun(){for(inti=0;i<10;i++){job.sub();}}})
  • 标签:传统 线程 同步
class="java" name="code">/**
 * 主线程和子线程轮流执行
 */
public class TraditionalThreadTest {
    public static void main(String[] args) {
        new TraditionalThreadTest().init();

    }

    public void init() {
        final Job job = new Job();
        new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i < 10; i++) {
                    job.sub();
                }
            }
        }).start();

        for (int i = 0; i < 10; i++) {
            job.main();
        }
    }


    class Job {
        private boolean flag = true;
        public synchronized void main() {
            if (!flag){
                try {
                    this.wait();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
            for (int i = 0; i < 10; i++) {
                System.out.println("main--------------------:i:" + i);
            }
            flag = false;
            this.notify();
        }

        public synchronized void sub() {
            if (flag){
                try {
                    this.wait();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
            for (int i = 0; i < 10; i++) {
                System.out.println("sub:i:" + i);
            }
            flag = true;
            this.notify();

        }
    }
}

?

上一篇: ThreadLocal共享变量1 下一篇: 没有下一篇了!
发表评论
用户名: 匿名