5条线程轮流打印1~100
一、问题解析
既然是轮流打印,说明每个线程只能做自己的事情,只有满足了自己打印的要求才去打印,所以自然我们就会想到取模,根据取模的结果去触发打印机制。
二、代码
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相关推荐
- 线程打印_面试题:用程序实现两个线程交替打印 0~100 的奇偶数
作者:dadiyang来源:https://blog.csdn.net/dadiyang/article/details/88315124 面试场景 面试官:Java多线程了解吗?你给我写一下,起两个 ...
- 多线程完成连续打印1-100的数字, 要求一条线程专门打印奇数,另外一条专门用来打印偶数
import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.Executors; import java.u ...
- java go多线程:两个线程交替打印 0~100 的奇偶数
最近在实现raft算法,用到了很多go的高并发的知识,看到一道题写两个线程交替打印 1~100 的奇偶数,突然来了兴趣. 题目要求我们要启动两个线程,一个打印奇数,一个打印偶数.中途不能跳出协程. 代 ...
- C++11多线程编程-两个进程轮流打印1~100
这是经典的同步互斥问题, 遵循原则: 1.条件变量需要锁的保护: 2.锁需要条件变量成立后,后重新上锁: 参考代码: //notify_one()(随机唤醒一个等待的线程) //notify_all( ...
- 采用java信号量(semaphore)让线程轮流打印
semaphore是java.util.concurrent包下的并发工具类. A counting semaphore. Conceptually, a semaphore maintains a ...
- 关于线程轮流打印0-99
使用Reentrantlock实现 package com.wang;import java.util.concurrent.locks.Condition; import java.util.con ...
- 手撕面试题:多个线程交替打印问题
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 第一篇打算总结下阿里最喜欢问的多个线程顺序打印问题,我遇到 ...
- Java常见的面试算法题:实现两个线程交替打印1到100的数
Java常见的面试算法题:实现两个线程交替打印1到100的数 思路: 这是涉及到多个线程打印的问题,一定会用到锁的(synchronized),故这就是一个多线程打印的典型案例. 代码实现: pack ...
- 三个线程轮流执行顺序打印ABC
方法1:使用boolean标记 package com.ziyear.exam;/*** 3个线程,顺序打印ABC10次*/ public class PrintThread_ABC_10_1 {/* ...
- 进程有一个全局变量 i,还有有两个线程。i++ 在两个线程里边分别执行 100 次,能得到的最大值和最小值分别是多少?
转自https://blog.csdn.net/biubiu741/article/details/77990592 多核CPU最小值为2,最大值200. 假设两个线程的执行步骤如下: 1. 线程A执 ...
最新文章
- Redux你的Angular 2应用--ngRx使用体验
- 用iptables来防止web服务器被CC攻击
- CentOS7 Zabbix3.4安装
- html盒子模型子元素怎么水平占满父元素_前端面试常考问题之css盒模型
- BZOJ 3289 Mato的文件管理(莫队+树状数组)
- java读二进制bin文件内容_利用Java读取二进制文件示例详细解说
- android 电池续航时间,《Android优化专题》——优化电池续航能力
- 专利申请模板(技术交底书)
- 在Android Studio创建第一个Android项目
- macbook配置java环境变量_mac上java环境变量配置
- 美学心得(第二百二十五集)罗国正
- Python编程练习:斐波那契数列
- OSPF协议介绍➌(认证、汇总扩展、LSDB的保护特性、缺省路由、附录E、选路规则、SPF算法、NP+E位、FA地址)
- 软件工程之功能性需求和非功能性需求
- 一个男人最高的品味是他选择的女人
- clickhouse的日期处理
- 网站用户行为数据收集和分析方法
- 微信支付商户与服务商区别
- TCP 内核参数说明
- 解析北斗/GNSS高精度数据处理暨GAMIT/GLOBK v10.75软件
热门文章
- 2011年6月CISA考试报名时间公布
- 关于ROS的设置问题
- GTD+敏捷=一种新的计划列表理念和方法。
- (转自珊珊博客)甜甜蜜蜜走台湾 Day3
- Asp.net2.0 中自定义过滤器对Response内容进行处理
- 查找算法——二分查找
- linux常用命令全集sed,Linux常用命令之find详解
- Scikit-Learn (浅谈PCA降维算法)
- java对话框可以设置颜色吗_java文本域颜色设置对话框.doc
- centos安装python3.8.1_centos6.6下安装python3.8.1后报错??报错-问答-阿里云开发者社区-阿里云...