public class MyTest {
public static void main(String[] args) {
//创建任务对象
MyTask myTask = new MyTask();
for(int i=1;i<=3;i++){
new Thread(myTask,i+"").start();
}
}
}
public class MyTask implements Runnable{
//线程标记
int state =1;
//要打印的自增数字标志1-75
int number=1;
@Override
public void run() {
//经推算,每个线程需要运行五轮
for(int i=0;i<5;i++){
print(Thread.currentThread().getName());
}
}
public synchronized void print(String name){//参数为线程名(1、2、3)
int num=Integer.parseInt(name);
while(num!=state){
try {
this.wait();//this代表进入本方法的线程对象
} catch (InterruptedException e) {
e.printStackTrace();
}
}
//进入本方法的每个线程都要连续打印5个数字
for(int i=0;i<5;i++){
System.out.println("线程"+num+":"+number++);
}
//此线程打印完5个连续数字,然后运算标记使下一个线程进入
state=state%3+1;
//唤醒本线程以外的其他线程
this.notifyAll();
}
}

启动三个线程,线程1打印1-5,线程2打印6-10,线程3打印11-15,接着线程1打印16-20……依此类推,打印到72.相关推荐

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

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

  2. 线程停止继续_晓龙吊打面试官系列: 如何优雅的停止一个线程

    一.什么时候我们需要中断一个线程 在实际的开发中,有很多场景需要我们中断一个正在运行的线程,就比如: 当我们使用抢票软件时,其中某一个通道已经抢到了火车票,这个时候我们就需要通知其他线程停止工作. 当 ...

  3. 11.python之线程,协程,进程,

    一,进程与线程 1.什么是线程 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行 ...

  4. 厚积薄发,丰富的公用类库积累,助你高效进行系统开发(11)---各种线程相关操作类...

    俗话说,一个好汉十个帮,众人拾柴火焰高等都说明一个道理,有更多的资源,更丰富的积累,都是助你走向成功,走向顶峰的推动力. 本篇的公用类库的介绍主题是程序开发中多线程操作环境中,常用到的线程相关类,本篇 ...

  5. 线程间怎么交换数据_2 万字长文详解 10 大多线程面试题|原力计划

    作者 | ZZZhonngger 责编 | 伍杏玲 出品 | CSDN博客 Volatile相关 1.请谈谈你对 volatile 的理解 答:volatile 是 Java 虚拟机提供的轻量级的同步 ...

  6. pyqt stop停止线程_面试阿里,字节跳动,腾讯90%都会被问到如何终止线程?有几种方式?你都知道吗?...

    在 Java 中有以下 3 种方法可以终止正在运行的线程: 使用退出标志,使线程正常退出,也就是当 run() 方法完成后线程终止: 使用 stop() 方法强行终止线程,但是不推荐使用这个方法,因为 ...

  7. 01编写10个线程,第一个线程从1加到10,第二个线程从11加20…第十个线程从91加到100,最后再把10个线程结果相加。

    01编写10个线程,第一个线程从1加到10,第二个线程从11加20-第十个线程从91加到100,最后再把10个线程结果相加(递归算法). 要求很明了:就是要求10个线程,每个线程执行加操作,然后顺序执 ...

  8. 15、线程同步方式有哪些?优缺点?

    进程中线程同步的四种常用方式: 一. 临界区(CCriticalSection) 当多个线程访问一个独占性共享资源时,可以使用临界区对象.拥有临界区的线程可以访问被保护起来的资源或代码段,其他线程若想 ...

  9. 11.定时任务定时线程池详解

    3.1 新增定时任务池 11.定时任务&定时线程池详解 ​ 当我们不用任务框架时,我们想自己写一个定时任务时,我们能想起那个工具类呢?Timer ?还有吗?不知道了,下面我们要讲下Schedu ...

最新文章

  1. 路由器交换机命令总结
  2. TensorFlow2-神经网络训练
  3. [禅悟人生]尊严非席, 不可卷起
  4. cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
  5. 循环卷积和周期卷积的关系_基于单口RAM读写的卷积电路(下)
  6. vs xaml 语句完成 自动列出成员_数据传输 | mysqldiff/mysqldbcompare 实现 DTLE 自动化测试...
  7. C++语言基础 —— C++语言入门
  8. Struts2 整合jQuery实现Ajax功能
  9. Redis常用数据类型和事物以及并发
  10. vue 文件目录结构详解
  11. 文档服务器备份吗,本地资料和云服务器备份吗
  12. 代理模式(静态代理、动态代理)
  13. gdiplus 水印_GDIPlus合成半透明图片批量添加图片水印
  14. 视频教程-Mikrotik RouterOS 软路由基础教程-网络技术
  15. uc android 4.2,uc网盘下载10.4.2 安卓版-uc网盘手机版西西软件下载
  16. 杭电多校(MINIEYE)第四场 补题
  17. 华中农业大学和南京农业大学计算机,科学网—2015年国内几所农业大学的国家基金排名及评述 - 朱猛进的博文...
  18. V神北京演讲全文:Casper与分片技术的最新进展
  19. IOS 图片拉伸不变形
  20. 芯片的制造过程与三大主设备

热门文章

  1. 手机如何制作两寸照片
  2. 我的世界服务器文件DIM,Minecraft 文件结构介绍
  3. 阿里云创始人王坚:你要相信你所坚持的
  4. 理解Mean-Variance Portfolio Theory In MPT
  5. 最全的数据结构归纳总结
  6. 网件路由器使用计算机mac,网件路由器怎么ip与mac绑定(2)
  7. ElasticSearch重启脚本
  8. 离子感烟探测器的工作原理介绍
  9. 多标签文本分类研究进展概述
  10. 新版Zotero插件更新