博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
4.多线程之间的通讯
阅读量:7208 次
发布时间:2019-06-29

本文共 1242 字,大约阅读时间需要 4 分钟。

什么是多线程的通讯?
多线程之间的通讯,其实就是多个线程同时去操作同一个资源,但是操作动作不同
 
 
package com.jlong;
 
class User {
    public String name;
    public String sex;
 
    public boolean flag=false;
}
 
class InputThread extends Thread {
    private User user;
 
    public InputThread(User user) {
        this.user = user;
    }
 
    int cout = 0;
 
    @Override
    public void run() {
 
        while (true) {
            synchronized (user) {
                if(user.flag){
                    try {
                        user.wait();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
 
                if (cout == 0) {
                    user.name = "jLong";
                    user.sex = "男";
                } else {
                    user.name = "燕子";
                    user.sex = "女";
                }
                cout = (cout + 1) % 2;
                user.flag=true;
                user.notify();
            }
 
        }
    }
}
 
class OutputThread extends Thread {
 
 
    private User user;
 
    public OutputThread(User user) {
        this.user = user;
    }
 
    @Override
    public void run() {
        while (true) {
            synchronized (user) {
                if(!user.flag){
                    try {
                        user.wait();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
                System.out.println(user.name + "--" + user.sex);
                user.flag=false;
                user.notify();
            }
 
        }
    }
}
 
public class ThreadDemo01 {
    public static void main(String[] args) {
        User user = new User();
        InputThread inputThread = new InputThread(user);
        OutputThread outputThread = new OutputThread(user);
        inputThread.start();
        outputThread.start();
    }
}

转载于:https://www.cnblogs.com/goldlong/p/10953871.html

你可能感兴趣的文章
Connected Graph
查看>>
openfile iscisi 配置
查看>>
SCAU 9504 面试
查看>>
基本数据类型、输入输出、运算符
查看>>
WuKong 最短路&&记忆化搜索
查看>>
Smart3D系列教程4之 《案例实战演练1——小物件的照片三维重建》
查看>>
C# 模拟多线程下载文件
查看>>
[17]CSS3 变形效果(上)
查看>>
JSP 脚本中的 9 个内置对象
查看>>
第十三章 模块和包
查看>>
[TC-HouseProtection]House Protection
查看>>
[ONTAK2015]OR-XOR
查看>>
不要把时间浪费在QQ上
查看>>
ntohs, ntohl, htons,htonl的比较和详解
查看>>
Ubuntu12.04 eclipse4.2安装ADT20时报错
查看>>
计算形状Shape(圆Circle,矩形Square ,正方形Rectangle)的面积、周长
查看>>
WP7基础学习---第七讲
查看>>
[摘录]第一部分 掌舵领航(4)
查看>>
50、转自知乎上android开发相见恨晚的接口
查看>>
递归 && 反射
查看>>