线程间的通讯
1.线程间的通讯:其实就是多个线程操作同一个资源
2.为什么这些操作线程的方法都要定义在Objec类中呢?
因为这些方法操作同步线程时,都必须 要标识他们线程持有的锁,
只有同一个锁中的被等待线程,可以被同一个锁上的notify锁唤醒。
不可以对不同锁中的线程进行唤醒也就是说等待和唤醒必须是同一个锁,
而锁可以是任意对象,所以被任意对象调用的方法。
public class InputOutDemo { public static void main(String[] args) { Res res = new Res(); Thread input = new Thread(new Input(res)); Thread output = new Thread(new Output(res)); input.start(); output.start(); } } //资源 class Res { String name; String sex; boolean flag; //类似于产生资源 public synchronized void set(String name,String sex){ if(flag){ try {this.wait();} catch (InterruptedException e){e.printStackTrace();} } this.name = name; this.sex = sex; this.notify(); flag = true; } //类似于消耗资源 public synchronized void out(){ if(!flag){ try {this.wait();} catch (InterruptedException e){e.printStackTrace();} } System.out.println(this.name +"----"+this.sex); this.notify(); flag = false; } } class Input implements Runnable { private Res res; //同步资源 public Input(Res res) { this.res = res; } @Override public void run() { int x = 0; while (true) { if (x == 0) { res.set("jack", "男"); } else { res.set("kally", "女"); } x = (x + 1) % 2; } } } class Output implements Runnable { private Res res; public Output(Res res) { this.res = res; } @Override public void run() { while (true) { res.out(); } } }
相关推荐
Windows 2000提供的常用对象可分成三类:核心应用服务、线程同步和线程间通讯。其中,开发人员可以使用线程同步对象来协调线程和进程的工作,以使其共享信息并执行任务。此类对象包括互锁数据、临界段、事件、互斥体...
jeromq-0.3.5.jar 线程间通讯
android 线程间通讯
JAVA100例之实例64 JAVA线程间通讯
多线程编程之三——线程间通讯
c++ 多线程编程之三 线程间通讯 后面还有四哦
通过代码实现线程间通讯,实现等待、唤醒等机制。
在Visual C++中利用自定义消息实现线程间通讯C++源代码程序小实例
Windows 2000提供的线程间通讯类内核对象允许同一进程或跨进程的线程之间互相发送信息,包括文件、文件映射、邮件位和命名管道等,其中最常用的是文件和文件映射。这类对象允许一个线程很容易地向同一进程或其他进程...
Android AIDL线程间通讯样例项目
disruptor:高性能Java线程间通讯库
本文介绍多线程间通讯的基本知识,并带有源代码。
关于线程的几种控制方式以及线程中的几种通信方式,给初学者参考,希望能有用
在学习Java过程中,自己收集了很多的Java的学习资料,分享给大家,有需要的欢迎下载,希望对大家有用,一起学习,一起进步。
Java多线程线程间通讯
主要介绍了Java并发编程线程间通讯实现过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
4.线程间同步和通信之邮箱(动态),按键通过邮箱发送消息点亮LED灯,学习邮箱
csharp多线程示例(全),根据网上教材重写的示例代码,纠正了教材上面的一些小Bug
多线程编程之三——线程间通讯 19 七、线程间通讯 19 例程7 MultiThread7 19 多线程编程之四——线程的同步 23 八、线程的同步 23 例程8 MultiThread8 24 例程9 MultiThread9 26 例程10 MultiThread10 29