public class T {private static int a =1;//1代表线程1 2线程2public static void main(String[] args) {final T t = new T();new Thread(new Runnable() {@Overridepublic void run() {synchronized (t) {for(int i=1;i<=10;i++){if(i==6){try {a=2;//切换线程2t.wait();//线程1等待,并释放了对象的锁} catch (Exception e) {e.printStackTrace();}}System.out.println(Thread.currentThread().getName()+":"+i);}                                            }}}).start();;new Thread(new Runnable(){@Overridepublic void run() {synchronized (t) {if(a!=2){//没有轮到,进入等待try {t.wait();} catch (InterruptedException e) {e.printStackTrace();}}System.out.println("hello");t.notifyAll();}}}).start();}
}

结果如下:

Thread-0:1
Thread-0:2
Thread-0:3
Thread-0:4
Thread-0:5
Thread-1:hello
Thread-0:6
Thread-0:7
Thread-0:8
Thread-0:9
Thread-0:10

转载于:https://www.cnblogs.com/GotoJava/p/6743043.html

java - 线程1打印1-10,当线程打印到5后,线程2打印“hello”,然后线程1继续打印...相关推荐

  1. Java学习笔记18:Java_Map集合_HashMap集合_可变参数_Stream流_多线程_线程同步_生产者消费者

    文章目录 1.Map集合 1.1Map集合概述和特点[理解] 1.2Map集合的基本功能[应用] 1.3Map集合的获取功能[应用] 1.4Map集合的遍历(方式1)[应用] 1.5Map集合的遍历( ...

  2. 一道面试题:三个线程循环有序输出10次ABCABC...

    面试遇到的一道面试题:三个线程循环有序输出10次ABCABC... 解决思路:使用synchronized,wait和notifyAll控制线程同步 package com.myj.test.thre ...

  3. 集合到文件 文件到集合 点名器 集合到文件数据排序版 标准输入流 打印流 对象序列化流 对象返序列化流 Properties 游戏次数 进程和线程 线程 多线程的实现方式 设置和获取线程名称

    文章目录 集合到文件 文件到集合 点名器 集合到文件数据排序版 标准输入流 打印流 对象序列化流 对象返序列化流 Properties 游戏次数 进程和线程 线程 多线程的实现方式 设置和获取线程名称 ...

  4. 写给小白看的线程池,还有10道面试题

    如何搞定20k的面试小抄 为什么要用线程池呢? 下面是一段创建线程并运行的代码: for (int i = 0; i < 100; i++) {new Thread(() -> {Syst ...

  5. java控制一次传10条数据_java 定时同步数据的任务优化

    前言 定时任务在系统中并不少见,主要目的是用于需要定时处理数据或者执行某个操作的情况下,如定时关闭订单,或者定时备份.而常见的定时任务分为2种,第一种:固定时间执行,如:每分钟执行一次,每天执行一次. ...

  6. c++ 多个线程操作socket要同步吗_基础知识深化:NIO优化原理和Tomcat线程模型

    1.I/O阻塞 书上说BIO.NIO等都属于I/O模型,但是I/O模型这个范围有点含糊,我为此走了不少弯路.我们日常开发过程中涉及到NIO模型应用,如Tomcat.Netty中等线程模型,可以直接将其 ...

  7. 为什么线程池里的方法会执行两次_新手一看就懂的线程池

    作者:码农田小齐 来源:https://www.cnblogs.com/nycsde/p/14003888.html 那相信大家也能感受到,其实用多线程是很麻烦的,包括线程的创建.销毁和调度等等,而且 ...

  8. 被裁员之后的Java面经分享,10年经验,已投简历 130+

    大家好,我是十一 今天给小伙们分享一位 10 年工作经验的老哥被裁员之后面试高级 Java 开发工程师的求职经历! 内容比较长,干货很多.有帮助的话,欢迎点赞分享! 概述 最近换工作,对最近面试的过程 ...

  9. Java多线程初学者指南(10):使用Synchronized关键字同步类方法

    要想解决"脏数据"的问题,最简单的方法就是使用synchronized关键字来使run方法同步,代码如下: public synchronized void run() {     ...

  10. 什么是线程?与进程又有什么区别,为什么要使用它,等对线程进行详细介绍

    一.什么是线程 在传统操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程 进程: 划分空间,加载资源,静态的,资源单位 线程: 执行代码,执行能力,动态的,执行单位 进程只是用来把资源集中到 ...

最新文章

  1. 这可能是把策略模式讲的最通俗易懂得文章了!
  2. eBPF学习——抓取内核网络中的socket信息
  3. python安装mysql数据库教程,Python配置mysql的教程(必看)
  4. svn异地同步 linux,svn库两地开发之代码数据的同步包括***连接的全套解决方案
  5. android+usb摄像头预览分辨率,UVCCamera(usb camera)适配Android9
  6. 一文详解 React 组件类型
  7. Dropbox被墙了,幸亏还有类似服务SugarSync
  8. scala---中的一些string方法
  9. 智慧城管统计考评详解
  10. linux mint字体缺失,WPS for Linux【Debian、Ubuntu、Deepin、Linux Mint】字体缺失解决【批量字体安装】...
  11. 如何将一个vector内容赋值给另一个vector C/C++
  12. 3D CV 论文调研
  13. 智能修改文案-智能写作平台
  14. 留存/复购cohort
  15. vCenter Server CA证书下载
  16. vs单步调试及断点调试基本介绍
  17. 休眠(Hibernate)和睡眠(Sleep)的区别
  18. Linux(CentOS7)中利用一个光盘制作yum源(配置yum源)
  19. IdentityServer Checking for expected scope openid failed
  20. 聊聊rel=external nofollow和rel=noopener noreferrer

热门文章

  1. Linux创建文件自动消失,Linux中没有文件创建时间的概念
  2. javaweb设置servlet
  3. UI自动化之特殊处理三(日期控件\表格\富文本)
  4. day5 python学习
  5. Linux——文件打包与压缩
  6. Makefile笔记之二------make的递归执行
  7. SqlHelper中IN集合场景下的参数处理
  8. linux timeline
  9. 关于企业的信息化建设
  10. 啤酒屋研究(回应cygoodyu 朋友的问题)