一个线程间的通讯小程序__(Java_Thread_Inout.Output)
- //多线程通讯
- //多个线程处理同一资源,但是任务不同
- //等待唤醒方法:
- //wait():将线程变成为冻结状态,线程会被存储在线程池中;
- //notify():唤醒线程中的一个线程(任意的)
- //notifyAll():唤醒所有线程;
- /**************************************************************/
- //建立资源类
- class Resource
- {
- private boolean flag = false;
- private String name;
- private String sex;
- public synchronized void set(String name,String sex)
- {
- if(flag)
- try
- {
- this.wait();
- }
- catch (InterruptedException e)
- {
- }
- this.name = name;
- this.sex = sex;
- this.flag=true;
- this.notify();
- }
- public synchronized void get()
- {
- if(!this.flag)
- try
- {
- this.wait();
- }
- catch (InterruptedException e)
- {
- }
- System.out.println(name+"--"+sex);
- this.flag=false;
- this.notify();
- }
- }
- //建立输入任务类
- class Input implements Runnable
- {
- Resource r;
- Input(Resource r)
- {
- this.r = r;
- }
- public void run()
- {
- int x = 0;
- while(true)
- {
- if (x==0)
- {
- r.set("野兽","男 ");
- }
- else
- {
- r.set("meinv","nv ");
- }
- x=(x+1)%2;
- }
- }
- }
- //建立输出任务类
- class Output implements Runnable
- {
- Resource r;
- Output(Resource r)
- {
- this.r = r;
- }
- public void run()
- {
- while(true)
- {
- synchronized(r)
- {
- r.get();
- }
- }
- }
- }
- class IoDemo1
- {
- public static void main(String[] args)
- {
- //建立资源对象
- Resource r = new Resource();
- //建立输入任务对象
- Input in = new Input(r);
- //建立输出任务对象
- Output out = new Output(r);
- //建立输入任务的进程
- Thread t1 = new Thread(in);
- //建立输出任务的进程
- Thread t2 = new Thread(out);
- //开启线程
- t1.start();
- t2.start();
- }
- }
一个线程间的通讯小程序__(Java_Thread_Inout.Output)的更多相关文章
- python实现串口通讯小程序(GUI界面)
python实现串口通讯小程序(GUI界面) 使用python实现串口通讯需要使用python的pyserial库来实现,这个库在安装python的时候没有自动进行安装,需要自己进行安装. 1.安装p ...
- python(三)一个文件读写操作的小程序
我们要实现一个文件读写操作的小程序 首先我们有一个文件 我们要以"============"为界限,每一个角色分割成一个独立的txt文件,按照分割线走的话是分成 xiaoNa_1. ...
- java线程间的通讯
主要通过wait()和notify()方法进行线程间的通讯 class Product extends Thread{ String name; float price; boolean flag = ...
- 一个小时快速搭建微信小程序教程
「小程序」这个划时代的产品发布快一周了,互联网技术人都在摩拳擦掌,跃跃欲试.可是小程序目前还在内测,首批只发放了 200 个内测资格(泪流满面).本以为没有 AppID 这个月就与小程序无缘了,庆幸的 ...
- 一个小时快速搭建微信小程序
「小程序」这个划时代的产品发布快一周了,互联网技术人都在摩拳擦掌,跃跃欲试.可是小程序目前还在内测,首批只发放了 200 个内测资格(泪流满面).本以为没有 AppID 这个月就与小程序无缘了,庆幸的 ...
- iOS多线程开发资源抢夺和线程间的通讯问题
说到多线程就不得不提多线程中的锁机制,多线程操作过程中往往多个线程是并发执行的,同一个资源可能被多个线程同时访问,造成资源抢夺,这个过程中如果没有锁机制往往会造成重大问题.举例来说,每年春节都是一票难 ...
- Java---基于TCP协议的相互即时通讯小程序
这是几年前,新浪的一个面试题~要求是3天之内实现~ 通过TCP 协议,建立一个服务器端. 通过配置服务器端的IP和端口: 客户端之间就可以相互通讯~ 上线了全部在线用户会收到你上线的通知. 下线了全部 ...
- 猩球StarBall ,一个方便约球的小程序
扫描小程序码直接进入小程序 猩球StarBall 是一款为热爱运动的人群提供便利的小程序. 开发技术为Java +Mysql 其中用到的技术框架为SpringBoot,Mybatis,Redis,Qu ...
- 用Python快速实现一个垃圾分类APP|附带微信小程序
最近北京开始实行垃圾分类,导致大家对垃圾的研究热度突然涨高,垃圾们也纷纷表示从来没有获得过这么高的关注度.其实,上海市去年已经开始实行,网上已经有不少成熟的教程了,像什么<垃圾分类从入门到精通& ...
随机推荐
- 一天掌握Android JNI本地编程 快速入门
一.JNI(Java Native Interface) 1.什么是JNI: JNI(Java Native Interface):java本地开发接口 ...
- Spark SQL - DataFrame
1 Overview Spark SQL is a Spark module for structured data processing. It provides a programming abs ...
- 21 Free SEO Tools For Bloggers--reference
http://dizyne.net/21-free-seo-tools-for-bloggers/ What do you think is important in a website? Yes, ...
- 去掉或者修改 input、select 等表单的【默认样式 】
隐藏input等表单的默认样式的背景: textarea,select,input{-webkit-appearance: none; -moz-appearance: none; -o-appear ...
- WPF 之 后台设置Image的Souce
后台动态设置Image的Souce. 方法一: BitmapImage imgSource = new BitmapImage(new Uri("location",UriKind ...
- Inversions
There are N integers (1<=N<=65537) A1, A2,.. AN (0<=Ai<=10^9). You need to find amount o ...
- 1.6.6 De-Duplication(重复数据删除)
1. 重复数据删除 solr通过<Signature>类的类型来支持重复数据删除技术的.一个Signature可以通过以下几种方式实现: 方法 描述 MD5Signature 128 ...
- Java基础知识强化104:Serializable接口 与 Parcelable接口
1. 什么是 序列化 和 反序列化 ? 序列化 :序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化.可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间.序 ...
- android网络请求库volley方法详解
使用volley进行网络请求:需先将volley包导入androidstudio中 File下的Project Structrue,点加号导包 volley网络请求步骤: 1. 创建请求队列 ...
- 关于更新到Xcode8的一些问题
随着iOS 10的陆续使用,升级到xcode8也是大势所趋. 虽然现在xcode 8 可能还有一些问题,但是整体还是不错的,对一些常用的插件也做了集成,比如说 ///注释快捷键 下面说一下我遇到的一些 ...