一、问题解析

既然是轮流打印,说明每个线程只能做自己的事情,只有满足了自己打印的要求才去打印,所以自然我们就会想到取模,根据取模的结果去触发打印机制。

二、代码

class PrintNumber extends Thread {private static volatile int cnt = 0;private int id;  // 线程编号public PrintNumber(int id) {this.id = id;}@Overridepublic void run() {while (cnt <= 100) {if (cnt%5 == id) {synchronized (PrintNumber.class) {cnt++;System.out.println("thread_" + id + " num:" + cnt);}}}}public static void main(String[] args) {new PrintNumber(0).start();new PrintNumber(1).start();new PrintNumber(2).start();new PrintNumber(3).start();new PrintNumber(4).start();}//========================线程池写法=========================//    private volatile static int cnt = 1;
//    private int id;  // 线程编号
//    public PrintNumber(int id) {
//        this.id = id;
//    }
//
//    @Override
//    public void run() {
//        while (cnt <= 100) {
//
//            if (cnt%5 == id) {
//                //synchronized (PrintNumber.class) {
//                    System.out.println("thread_" + id + " num:" + cnt);
//                    cnt++;
//               // }
//            }
//        }
//    }
//
//    public static void main(String[] args) {
//
//        ExecutorService ex = Executors.newFixedThreadPool(5);
//
//        for (int i = 0; i < 5; i++) {
//            PrintNumber printNumber = new PrintNumber(i);
//            ex.submit(printNumber);
//        }
//
//        ex.shutdown();
//    }
}

5条线程轮流打印1~100相关推荐

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

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

  2. 多线程完成连续打印1-100的数字, 要求一条线程专门打印奇数,另外一条专门用来打印偶数

    import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.Executors; import java.u ...

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

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

  4. C++11多线程编程-两个进程轮流打印1~100

    这是经典的同步互斥问题, 遵循原则: 1.条件变量需要锁的保护: 2.锁需要条件变量成立后,后重新上锁: 参考代码: //notify_one()(随机唤醒一个等待的线程) //notify_all( ...

  5. 采用java信号量(semaphore)让线程轮流打印

    semaphore是java.util.concurrent包下的并发工具类. A counting semaphore. Conceptually, a semaphore maintains a ...

  6. 关于线程轮流打印0-99

    使用Reentrantlock实现 package com.wang;import java.util.concurrent.locks.Condition; import java.util.con ...

  7. 手撕面试题:多个线程交替打印问题

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 第一篇打算总结下阿里最喜欢问的多个线程顺序打印问题,我遇到 ...

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

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

  9. 三个线程轮流执行顺序打印ABC

    方法1:使用boolean标记 package com.ziyear.exam;/*** 3个线程,顺序打印ABC10次*/ public class PrintThread_ABC_10_1 {/* ...

  10. 进程有一个全局变量 i,还有有两个线程。i++ 在两个线程里边分别执行 100 次,能得到的最大值和最小值分别是多少?

    转自https://blog.csdn.net/biubiu741/article/details/77990592 多核CPU最小值为2,最大值200. 假设两个线程的执行步骤如下: 1. 线程A执 ...

最新文章

  1. Redux你的Angular 2应用--ngRx使用体验
  2. 用iptables来防止web服务器被CC攻击
  3. CentOS7 Zabbix3.4安装
  4. html盒子模型子元素怎么水平占满父元素_前端面试常考问题之css盒模型
  5. BZOJ 3289 Mato的文件管理(莫队+树状数组)
  6. java读二进制bin文件内容_利用Java读取二进制文件示例详细解说
  7. android 电池续航时间,《Android优化专题》——优化电池续航能力
  8. 专利申请模板(技术交底书)
  9. 在Android Studio创建第一个Android项目
  10. macbook配置java环境变量_mac上java环境变量配置
  11. 美学心得(第二百二十五集)罗国正
  12. Python编程练习:斐波那契数列
  13. OSPF协议介绍➌(认证、汇总扩展、LSDB的保护特性、缺省路由、附录E、选路规则、SPF算法、NP+E位、FA地址)
  14. 软件工程之功能性需求和非功能性需求
  15. 一个男人最高的品味是他选择的女人
  16. clickhouse的日期处理
  17. 网站用户行为数据收集和分析方法
  18. 微信支付商户与服务商区别
  19. TCP 内核参数说明
  20. 解析北斗/GNSS高精度数据处理暨GAMIT/GLOBK v10.75软件

热门文章

  1. 2011年6月CISA考试报名时间公布
  2. 关于ROS的设置问题
  3. GTD+敏捷=一种新的计划列表理念和方法。
  4. (转自珊珊博客)甜甜蜜蜜走台湾 Day3
  5. Asp.net2.0 中自定义过滤器对Response内容进行处理
  6. 查找算法——二分查找
  7. linux常用命令全集sed,Linux常用命令之find详解
  8. Scikit-Learn (浅谈PCA降维算法)
  9. java对话框可以设置颜色吗_java文本域颜色设置对话框.doc
  10. centos安装python3.8.1_centos6.6下安装python3.8.1后报错??报错-问答-阿里云开发者社区-阿里云...