`
baidu163_vip001
  • 浏览: 1479 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

第四天多线程的通讯

阅读更多
/*
线程间通讯:
其实就是多个线程在操作同一个资源,
但是操作的动作不同。

*/
class Res
{
String name;
String sex;
boolean flag = false;
}

class Input implements Runnable
{
private Res r ;
Input(Res r)
{
this.r = r;
}
public void run()
{
int x = 0;
while(true)
{
synchronized(r)
{

if(r.flag)
try{r.wait();}catch(Exception e){}
if(x==0)
{
r.name="mike";
r.sex="man";
}
else
{
r.name="丽丽";
r.sex = "女女女女女";
}
x = (x+1)%2;
r.flag = true;
r.notify();
}
}
}
}

class Output implements Runnable
{
private Res r ;

Output(Res r)
{
this.r = r;
}
public void run()
{
while(true)
{
synchronized(r)
{
if(!r.flag)
try{r.wait();}catch(Exception e){}
System.out.println(r.name+"...."+r.sex);
r.flag = false;
r.notify();
}
}
}
}


class  InputOutputDemo
{
public static void main(String[] args)
{
Res r = new Res();

Input in = new Input(r);
Output out = new Output(r);

Thread t1 = new Thread(in);
Thread t2 = new Thread(out);

t1.start();
t2.start();
}
}


//notifyAll();

/*
wait:
notify();
notifyAll();

都使用在同步中,因为要对持有监视器(锁)的线程操作。
所以要使用在同步中,因为只有同步才具有锁。

为什么这些操作线程的方法要定义Object类中呢?
因为这些方法在操作同步中线程时,都必须要标识它们所操作线程持有的锁,
只有同一个锁上的被等待线程,可以被同一个锁上notify唤醒。
不可以对不同锁中的线程进行唤醒。

也就是说,等待和唤醒必须是同一个锁。

而锁可以是任意对象,所以可以被任意对象调用的方法定义Object类中。


*/

分享到:
评论

相关推荐

    C#线程间通信

    采用的是C#的Winform开发,提供了两种线程交互的方式。 第一:在主线程中开启两个子线程,子线程用事件方式来进行通信。对于主线程的控件操作采用的是delegate委托的方式...第四:解决FindWindow 查找不到正确的WndID。

    Linux进程和线程的基本编程、通讯和例程1

    设计模式 POSIX多线程程序设计(第4章:使用线程的几种方式)瓦釜苑-CSDN博客posix多线程程序设计。调试相关:Linux进程崩溃原调试_guotian

    汪文君高并发编程实战视频资源全集

    │ 高并发编程第二阶段02讲、介绍四种Singleton方式的优缺点在多线程情况下.wmv │ 高并发编程第二阶段03讲、介绍三种高效优雅的Singleton实现方式.wmv │ 高并发编程第二阶段04讲、多线程的休息室WaitSet详细...

    汪文君高并发编程实战视频资源下载.txt

    │ 高并发编程第二阶段02讲、介绍四种Singleton方式的优缺点在多线程情况下.wmv │ 高并发编程第二阶段03讲、介绍三种高效优雅的Singleton实现方式.wmv │ 高并发编程第二阶段04讲、多线程的休息室WaitSet详细...

    基于Java的即时通讯系统设计与实现【文献综述】.doc

    一、即时通讯系统的开发背景 自从上世纪中叶第一台计算机诞生以来,计算机越来越走进人们的生活当中,特别是随 着计算机网络的发展,把全世界的人们紧密的联系在一起,大大的扩展了计算机的功能。 由于互联网的方便快捷...

    java习题(含答案).doc

    ★第四章 Java小应用程序 ★第五章 异常处理 ★第六章 图形与用户界面技术 ★第七章 多线程 ★第八章 多媒体编程 ★第九章 输入与输出流 ★第十章 网络通讯与编程 ★第十一章 Java语言的数据库访问技术 __________...

    蚂蚁课堂(每特学院)第一期-Java高端培训视频教程

    教程目录: ├─0001-多线程快速入门.zip ├─0002-多线程之间实现同步.zip ├─0003--多线程之间通讯.zip ├─0004--Java并发编程.zip ├─0005--数据交换格式与SpringIOC底层实现.zip ├─0006--自定义注解与设计...

    后台开发核心技术与应用实践

    第四部分(第9~11章)主要是多线程、进程和进程间通信相关的知识,包括多线程的使用、多线程的同步和重入问题,进程方面有父子进程、僵死进程、守护进程和进程间通讯的方式。 第五部分(第12章)主要是HTTP协议的...

    WIN32_API串口通信编程实例教程

    第一节 实现串口通讯的函数及串口编程简介 第二节 创建串口句柄打开串口 第三节 设置串口 第四节 读写串口数据及关闭串口 第五节 多线程串口通信及其它

    嵌入式Linux ARM开发课件第四讲

    ARM7~ARM9体系结构体系结构介绍 ARM7(9)TDMI处理器内核及指令集介绍 讲解SUMSUNG 44B0X 开发板原理图 讲解SUMSUNG 2410 开发板原理图 ARM开发工具ADS的使用 Uclinux,mizilinux系统引导程序...多线程程序设计 等。

    C# ModBus通信读写操作,ModBus Rtu串口通信,ModBus Tcp通信,全开源可使用

    C#对三菱和西门子,欧姆龙等支持Modbus的服务器进行读写,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 1)附件C#代码全开源,所有代码公开,不使用第三方组件。...

    后台开发的一些源代码

    第四部分(第9~11章)主要是多线程、进程和进程间通信相关的知识,包括多线程的使用、多线程的同步和重入问题,进程方面有父子进程、僵死进程、守护进程和进程间通讯的方式。 第五部分(第12章)主要是HTTP协议的...

    徐晓鑫后台开发技术实践——腾讯

    第四部分(第9~11章)主要是多线程、进程和进程间通信相关的知识,包括多线程的使用、多线程的同步和重入问题,进程方面有父子进程、僵死进程、守护进程和进程间通讯的方式; 第五部分(第12章)主要是HTTP协议的...

    后台开发 核心技术与应用实践

    第四部分(第9~11章)主要是多线程、进程和进程间通信相关的知识,包括多线程的使用、多线程的同步和重入问题,进程方面有父子进程、僵死进程、守护进程和进程间通讯的方式。 第五部分(第12章)主要是HTTP协议的...

    C#网络与通信程序设计案例精讲示例代码

    \chap04 提供了本书第4章第FTP客户端开发源程序; \chap05 提供了本书第5章电子邮箱系统源程序; \chap06 提供了本书第6章基于Socket的聊天室源程序; \chap07 提供了本书第7章多线程下载源程序 \chap08 提供...

    功能强大的串口工具:GhostyComm 4.0(万能通讯精灵)

    串口组件为第三方组件,TCP服务/客户主件为本人开发的“异步多线程”TCP组件,TCP服务组件为服务器级别的组件,每个客户连接有一个独立的线程响应处理。 本软件是单片机开发、调试不可缺少的功能齐全的串口工具...

    精仿QQ2013局域通讯(7.5更新版)

    25.多线程大文件传输功能,支持无上限大文件传输,有进度条显示进程度。 26.界面库已封装了大图取主色调,颜色判断暗亮等多项功能。 27.如果你觉得获取天气让你的登录太慢不想要的话,注释相关调用方法即可快速登录...

    mini2440国嵌视频教程+课件+工具+软件+镜像+教程源码下载地址

    -第4天(进程间通讯) -国嵌应用班-4-1(进程间通讯概述).avi -国嵌应用班-4-2(管道通讯).avi -国嵌应用班-4-3(信号通讯).avi -国嵌应用班-4-4(共享内存通讯).avi -国嵌应用班-4-5(必修实验).avi -第5天...

    linux programming instances网络编程教程 附源代码

    第4章 tcp套接字简介 4.1 套接字概述 4.2 套接字地址结构 4.3 位顺序调整 4.3.1 字节处理函数 4.3.2 地址转换函数 4.4 建立套接字 4.5 连接 4.5.1 客户端 4.5.2 服务器端 4.6 服务进程创建 4.6.1 ...

    嵌入式Linux视频教程全套2011新版-国嵌嵌入式培训下载地址

    -第4天(进程间通讯) -国嵌应用班-4-1(进程间通讯概述).avi -国嵌应用班-4-2(管道通讯).avi -国嵌应用班-4-3(信号通讯).avi -国嵌应用班-4-4(共享内存通讯).avi -国嵌应用班-4-5(必修实验).avi -第5天...

Global site tag (gtag.js) - Google Analytics