使用synchronized 及 Object对象的wait()和notifyAll()方法, Code如下

package com.shiwei.thread;public class OddEvenRunable {private static Object lock = new Object();public static void main(String[] args) {PrintNumber pOdd = new PrintNumber(true, lock);PrintNumber pEven = new PrintNumber(false, lock);Thread t1 = new Thread(pOdd);Thread t2 = new Thread(pEven);t1.start();t2.start();}
}class PrintNumber implements Runnable{Boolean flag;Object lock;public PrintNumber(Boolean flag, Object lock){this.flag = flag;this.lock = lock;}public void run() {for(int i=1; i< 20; i=i+2){synchronized(lock){if(flag){System.out.println("a---"+i);}else{System.out.println("b---"+(i+1));}lock.notifyAll();try {lock.wait();} catch (InterruptedException e) {// TODO Auto-generated catch block
                    e.printStackTrace();}}}}}

I. synchronized 锁住的是对象

//@TODO

II. Object wait(), notify() 和notifyAll()

//@TODO

转载于:https://www.cnblogs.com/fangshiwei/p/oddeven_1.html

Java 两线程交替打印奇偶数(一)相关推荐

  1. Java两个线程交替打印奇偶数(两种方法对比)

    简介 本文将承接文章<Java多线程wait()和notify()系列方法使用教程>,我们将通过"两个线程交替打印100内的奇偶数",来展示下wait()方法和noti ...

  2. java 阻塞 wait_java交替打印奇偶数问题,会出现2个线程都wait阻塞了

    我来回答一波. 你可以先将 Thread2 的代码做以下两种修改,一种是: public static class MyThread2 extends Thread { @Override publi ...

  3. Java常见的面试算法题:实现两个线程交替打印1到100的数

    Java常见的面试算法题:实现两个线程交替打印1到100的数 思路: 这是涉及到多个线程打印的问题,一定会用到锁的(synchronized),故这就是一个多线程打印的典型案例. 代码实现: pack ...

  4. 使用Java线程并发库实现两个线程交替打印的线程题

    背景:是这样的今天在地铁上浏览了以下网页,看到网上一朋友问了一个多线程的问题.晚上闲着没事就决定把它实现出来. 题目: 1.开启两个线程,一个线程打印A-Z,两一个线程打印1-52的数据. 2.实现交 ...

  5. java go多线程:两个线程交替打印 0~100 的奇偶数

    最近在实现raft算法,用到了很多go的高并发的知识,看到一道题写两个线程交替打印 1~100 的奇偶数,突然来了兴趣. 题目要求我们要启动两个线程,一个打印奇数,一个打印偶数.中途不能跳出协程. 代 ...

  6. java让两个线程交替_java两个线程实现: 两个线程交替打印字母和数

    两个线程交替打印字母和数字: 1A2B3C4D5E6F7G public class LockConditionTest { public static void main(String[] args ...

  7. 线程打印_面试题:用程序实现两个线程交替打印 0~100 的奇偶数

    作者:dadiyang来源:https://blog.csdn.net/dadiyang/article/details/88315124 面试场景 面试官:Java多线程了解吗?你给我写一下,起两个 ...

  8. java 线程交替输出,[java]java经典问题之线程交替打印数字

    问题 给出两个线程,要求两个线程交替打印从1到100,例如:A线程打印1,B线程打印2,A线程打印3...依次类推,直到打印到100 思路 这里主要是考察对java中wait/notifyAll机制的 ...

  9. 如何让两个线程交替打印整数1-100?你的答案呢?

    前端时间下班临走前看到同事做尝试的一个题目:如何让两个线程交替打印整数1-100? 好几年没有写代码玩了,想了想,花了十多分钟写了个答案: #include<stdio.h> #inclu ...

最新文章

  1. Butter Knife 8.8.1的安装和使用
  2. iOS调试 LLDB使用
  3. AE快速景深模糊插件:Rowbyte Fast Bokeh for Mac
  4. 1688: [Usaco2005 Open]Disease Manangement 疾病管理( 枚举 )
  5. 【iCore4 双核心板_ARM】例程三十三:SD_IAP_ARM实验——更新升级STM32
  6. 中数据库url怎么写_WIN10下怎么找到MYSQL数据库中存储数据的位置
  7. dmx512协议的编程c语言,我在此分享一份DMX512协议的发送程序,希望对做灯光控制的人有一定的帮助(我测试过了跟DMX512控制台发出的方波是一样一样的)...
  8. 倡导非盗版,自己常用的一些软件集锦
  9. 将数字转为中文金额的大写方式(C++版)
  10. 刷机必备:BlackBerry ROM,桌面管理器下载
  11. HTML基础知识笔记
  12. 京东淘宝手机销售量排行
  13. mc服务器违反协议,Mojang开始向违反EULA的服务器发出通告
  14. 基于opencv的SFR算法
  15. 云米冰箱“失智”,问题不止“小米依赖症”
  16. 省、市、区、街道行政区数据以及行政区数据合并问题
  17. Linux服务器基本安全防范
  18. 2023五一建模A题完整版本【原创首发】
  19. 思软系统无法与服务器数据库建立连接,思软软件操作常见问题.doc
  20. 怎么用matlab计算机械手运动,Matlab Robotics ToolBox 实战 -- 斯坦福机械手运动学建模及分析...

热门文章

  1. STC89C52RC单片机例程实现_流水灯1_模块化(C语言实现)
  2. c++ static allocator
  3. linux最基础安装,Linux Nginx最基础的十大安装步骤(2)
  4. Hibernate 笔记 HQL查询
  5. 使用Maven管理Eclipse Java项目(多modules编译)
  6. photoshop的页面制作练习1
  7. C语言声明数组变量时,在什么情况下,可不指定数组大小
  8. javascript谜题
  9. step5 . day3 网络编程 基于TPC协议的网络编程Demo,类FTP功能
  10. 最新版Kubernetes常用命令大全