基本思路:使用wait/notify机制。

public class ThreadTest{public static void main(String[] args){Object lock = new Object();Thread a = new A(lock);Thread b = new B(lock);a.start();b.start();}
}class A extends Thread{Object lock;public A(Object lock){this.lock = lock;}@Overridepublic void run (){synchronized(lock){for (int i = 1; i <= 8; i++) {System.out.println(i);if(i%2 == 0){try{lock.notify();lock.wait();}catch (InterruptedException e){e.printStackTrace();}}}}}}class B extends Thread{Object lock;public B(Object lock){this.lock = lock;}@Overridepublic void run (){synchronized(lock){for (int i = 1; i <= 4; i++) {System.out.println((char)(i+64));try{lock.notify();lock.wait();}catch(InterruptedException e){e.printStackTrace();}}}}}

java多线程的应用-使用两个线程打印12A34B56C78D相关推荐

  1. 【Java】线程通信的例子:用两个线程打印 1-100;生产者消费者问题

    wait()和sleep()的区别 面试题:sleep() 和 wait()的异同? 相同点:一旦执行方法,都可以使得当前的线程进入阻塞状态. 不同点: 1)两个方法声明的位置不同:Thread类中声 ...

  2. 详解Java多线程编程中LockSupport类的线程阻塞用法

    转载自  详解Java多线程编程中LockSupport类的线程阻塞用法 LockSupport类是Java6(JSR166-JUC)引入的一个类,提供了基本的线程同步原语.LockSupport实际 ...

  3. Java 多线程详解(五)------线程的声明周期

    Java 多线程详解(一)------概念的引入:https://blog.csdn.net/weixin_39816740/article/details/80089790 Java 多线程详解(二 ...

  4. Java多线程设计模式之顺序控制-两个小案例

    Java多线程设计模式之顺序控制-两个小案例 案例一 两个线程,保证B线程执行完毕后再让A线程执行 思路一:使用wait/notify,需要synchronized关键字支持 思路二:使用LockSu ...

  5. Java 多线程 不使用锁机制 实现交替打印数字和字母

    Java 多线程 不使用锁机制 实现交替打印数字和字母 这是一道经典的面试题,使用两个线程去交替打印数字和字母,输出1A2B3C4D5E6F7G-这样的效果,看了网上很多的文章,基本都是使用Condi ...

  6. Java多线程详解(如何创建线程)

    嗨喽-小伙伴们我们又见面了, 前面一章,我们了解了线程的基本概念,从这一章,我们开始学习如何创建一个线程.总的说来,在java中,有四种创建线程的方式: 1. 继承Thread类 2. 实现Runna ...

  7. Java 多线程详解(三)------线程的同步

    Java 多线程详解(一)------概念的引入:https://blog.csdn.net/weixin_39816740/article/details/80089790 Java 多线程详解(二 ...

  8. Java多线程技能(九)——暂停线程

    目录 1.suspend与resume方法的使用 2.suspend与resume方法的缺点--独占 3.suspend与resume方法的缺点--不同步   暂停线程意味着此线程还可以恢复运行.在 ...

  9. java 创建线程thread_初学Java多线程:用Thread类创建线程

    在Java中创建线程有两种方法:使用Thread类和使用Runnable接口.在使用Runnable接口时需要建立一个Thread实例.因此,无论是通过Thread类还是Runnable接口建立线程, ...

最新文章

  1. 问一下,线程池里面到底该设置多少个线程?
  2. pthread_cleanup_push与pthread_cleanup_pop的目的、作用
  3. 【随机共振】基于随机共振的高频弱信号检测的MATLAB仿真
  4. 【网上收藏】取得网卡mac
  5. HTTP和HTTPS的主要区别(面试常考)——计算机网络
  6. c语言生成随机英文字母,菜鸟求助,写一个随机输出26个英文字母的程序
  7. review一下上一年的积累
  8. html实现登录界面
  9. 神器 mimikatz - 直接抓取 Windows 明文密码
  10. 晚期非小细胞肺癌肿瘤异质性和微环境的单细胞分析(Nature Communication, 2021年5月5日)
  11. json解析小冒号:出错
  12. RocketMQ 内存优化
  13. Yardi客户入选全球房地产十强报告
  14. Windows Mobile下的重力感应器(Gravitational Sensor)开发
  15. 软件设计师上午真题及参考答案
  16. Excel 2010 VBA 入门 031 批量生成上标
  17. 什么是尾递归?(知乎转载)
  18. Pytorch搭建常见分类网络模型------VGG、Googlenet、ResNet50 、MobileNetV2(4)
  19. MathType编辑半直积符号的步骤
  20. win7提示“Windows资源管理器已经停止工作”有什么好的解决办法

热门文章

  1. 2023 最新大学生代刷网课系统源码
  2. 人人AI(吴恩达系列)
  3. (Servlet+Jsp)Web编程笔记(一套就够了)
  4. “珊瑚海”里的虚函数
  5. mysql编程题 请使用_练习题|MySQL
  6. spring security2认证详解说明
  7. mysql数据库密码设置的六种方法
  8. ET框架---PlayerComponent学习笔记
  9. 流行和声(10)Augmented7和弦
  10. IntelliJ IDEA 设置文件编码