线程之间通讯
Posted moris5013
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线程之间通讯相关的知识,希望对你有一定的参考价值。
/** *将线程要运行的逻辑代码及数据同步相关的锁,放在同一个类中,这里是Business类,数据同步由Business类维护 *而与线程控制相关的代码分开,指的是线程类本身 * */ public class CommunicationTest { public static void main(String[] args) { Business business = new Business(); new Thread(new Runnable() { @Override public void run() { for (int i = 1; i <= 50; i++) { business.main(i); } } }).start(); new Thread(new Runnable() { @Override public void run() { for (int i = 1; i <= 50; i++) { business.sub(i); } } }).start(); } } class Business { private boolean isShouldSub = false; public synchronized void sub(int i) { while (!isShouldSub) { try { this.wait(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } for (int j = 1; j <= 10; j++) { System.out.println("sub thread sequence of " + j + " , loop of " + i); } isShouldSub = false; this.notify(); } public synchronized void main(int i) { while (isShouldSub) { try { this.wait(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } for (int j = 1; j <= 30; j++) { System.out.println("main thread sequence of " + j + " , loop of " + i); } isShouldSub = true; this.notify(); } }
以上是关于线程之间通讯的主要内容,如果未能解决你的问题,请参考以下文章