总结:发送线程Sender().和接收线程Receiver()

虽然,这里的Sender()发送线程和Receiver()都有相同的睡眠时间,但是由于线程调度的不确定性,是的发送线程Sender每次发送的数据和接收线程Receiver每次

接收的数据不一样。而我们希望的是发送线程每次发送的数据都能够让接收线程Receiver正确的接收 到,这就必须增加方法的锁定机制。

package com.a.b;

//package com.a.b;

class Buffer2 {// 这里注意java源文件不是Buffer.java(文件名)否则运行出错。根本无法显示

private int value; // 这里java圆文件是任意的,但是绝对不是Buffer

void put(int i) {

value = i;

}

int get() {

return value;// 返回值

}

}

class Sender extends Thread {

// 发送线程

private Buffer bf;

public Sender(Buffer bf) {

this.bf = bf;

}

@Override

public void run() {

for (int i = 1; i < 6; i++) {

bf.put(i);// 这个调用带参的put()方法

System.out.println("Sender put:" + i);

try {

sleep(i);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

public static void main(String[] args) {

Buffer bf2 = new Buffer();// 这个和类名一致。否则报错

(new Sender(bf2)).start();// 这里的Sender这个类的构造方法里本来就有个参数,、、我疑问为什么这里的构造方法

// 调用线程的start()方法不是new一个线程的对象,而是一个类的,你看这个类不是继承了Thread类吗?也就是说它可以继承

// 线程类的属性和方法---------是可以的

(new Receiver(bf2)).start();// 这里的括号没有打上,那么它会调用的是什么方法呢?有什么关系呢?

}

} // 这里不是类的对象吗:

class Receiver2 extends Thread {// 这是个类,和Sender是一样的?

private Buffer bf;

public Receiver2(Buffer bf) {

this.bf = bf;

}

@Override

public void run() {

for (int i = 0; i < 6; i++) {

System.out.println("\t\t Receiver get:" + bf.get());

try {

sleep(1);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

java 打牌游戏_java代码-----实现4个人打牌游戏的相关代码。线程相关推荐

  1. 猜数字java程序设计分析_JAVA程序设计课程设计-猜数字游戏设计

    JAVA程序设计课程设计-猜数字游戏设计 课 程 设 计 报 告课程设计名称 Java 程序设计 专 业 计算机科学与技术 班 级 2 班 学 号 08030212 姓 名 指导教师 成 绩 2011 ...

  2. java抽奖程序_java怎么做出简单的抽奖程序?实例代码展示

    自从20世纪90年代以来,java编程语言的发展如火如荼,不仅仅应用于高新产业的壮大发展,还涉及到了我们的日常生活,为我们的生活带来了更多的便利与快捷方法.今天主要为大家介绍一下,如何用java做出一 ...

  3. java runnable 启动_Java开发笔记(九十七)利用Runnable启动线程

    前面介绍了线程的基本用法,按理说足够一般的场合使用了,只是每次开辟新线程,都得单独定义专门的线程类,着实开销不小.注意到新线程内部真正需要开发者重写的仅有run方法,其实就是一段代码块,分线程启动之后 ...

  4. linux 锁屏 代码,Android锁屏与解屏相关代码分析

    我觉得对于普通人来说,最常见的是Android解屏的界面,然后应该是Home界面.今天就来分析一下解屏界面的相关代码(以索爱的解锁界面为例). 首先看解屏的界面,我把解屏的界面分为两个部分,最上部是s ...

  5. java猜数字小游戏_Java实现简单猜数字小游戏

    本文实例为大家分享了Java实现猜数字游戏的具体代码,供大家参考,具体内容如下 完成猜数字游戏需要实现以下几点:获得一个随机数作为"答案数": 输入数字,与"答案数&qu ...

  6. java 五子棋项目_Java项目如何实现五子棋小游戏

    Java项目如何实现五子棋小游戏 发布时间:2020-07-21 14:53:06 来源:亿速云 阅读:77 作者:小猪 小编这次要给大家分享的是Java项目如何实现五子棋小游戏,文章内容丰富,感兴趣 ...

  7. java捕鱼设计_JAVA毕业设计教程:用swing实现捕鱼达人代码教程

    用JAVA SWING实现的捕鱼教程 开发工具:ECLIPSE 实现技术:JAVA SWING 用到的JAR包:xmlpull_1_1_3_4c.jar.dom4j-1.6.1.jar.jl1.0.j ...

  8. java 拼图游戏_Java小项目之:拼图游戏!

    Java小项目之:拼图游戏! 今天教大家用java做出一个拼图游戏,很适合java初学者练手. 所用素材: 部分代码: package picture_mosical; import java.awt ...

  9. java多线程小游戏_Java多线程实现方块赛跑小游戏

    本文实例为大家分享了Java实现方块赛跑小游戏的具体代码,供大家参考,具体内容如下 在一个图形界面上构造两个位于同一起跑线方块,起跑线位于界面靠左位置, A 方块先开始运动,向右移动 50 像素后停止 ...

  10. java移动方块小游戏_Java多线程实现方块赛跑小游戏

    本文实例为大家分享了Java实现方块赛跑小游戏的具体代码,供大家参考,具体内容如下 在一个图形界面上构造两个位于同一起跑线方块,起跑线位于界面靠左位置, A 方块先开始运动,向右移动 50 像素后停止 ...

最新文章

  1. CVPR 2021 Oral | Transformer再发力!华南理工和微信提出UP-DETR
  2. 为什么大型互联网都爱用kafka?
  3. beego mysql session_关于go中beego/session的小总结
  4. aida64 extreme 序列号_轻声问海关,规范申报错了谁负责?底料来源四川行不行?没有公式定价行不行?序列号是料号行不行?...
  5. DNS_ARP_DHCP协议
  6. 三十岁前不要去在乎的29件事
  7. 10分钟上线 - 利用函数计算构建微信小程序的Server端
  8. “章子欣父亲”账号发文造假实锤 百度新闻负责人:是我的锅
  9. HTML — 快速开发总结篇
  10. 潭州课堂25班:Ph201805201 tornado 项目 第三课 项目 图片上传,展示 (课堂笔记)...
  11. VC MakeUp 操作XML
  12. 第十一届“认证杯”数学中国数学建模国际赛(小美赛) (2022 CERTIFICATE AUTHORITY CUP INTERNATIONAL MATHEMATICAL CONTEST IN MOD
  13. 学术论文写作规范性的要点-I 中文学术论文写作规划
  14. android图片的透明度变化,Android如何实现改变图片的透明度
  15. html边框缩短,有什么办法css border缩短
  16. 这份免税的农产品销售发票,可以抵扣9%的增值税吗?
  17. HTML如何实现滚动文字
  18. 信捷plc c 语言全局变量,三菱PLC编程中,跳转指令CJ、子程序调用CALL和中断指令有什么区别?...
  19. 有哪些有格调的免费素材网站?
  20. Python利用pandas对Ecxel文件以某一列进行去重并保存

热门文章

  1. 20191124每日一句
  2. 扇贝有道180909每日一句
  3. Atiitt 图像处理的常见功能业务用途与类库与功能实现 目录 1. 常见业务场景 2 1.1. 缩略图 2 1.2. 判断图像大小分辨率要求 长度 宽度 2 1.3. 图像格式 转换,,黑白图像
  4. paip.提升用户体验=----c++ qt 字体切换功能缺少的总结..
  5. paip.提升效率---质量控制--代码风格模板化
  6. paip.网站扫描安全工具hp WebInspect 使用指南
  7. Python:关于装饰器的理解
  8. Julia : 正则表达式
  9. 基金投资顾问制度即将启动,巨头入局
  10. Rust: 如何在Windows下Atom中配置Rust环境?