import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;/*** ### 作业5:* 请利用线程间通信, 完成连续打印1-100的数字, 要求一条线程专门打印奇数,另外一条专门用来打印偶数* **要求**:* 1:使用线程池完成** @author silence*/
public class Demo1 {public static void main(String[] args) {ThreadPoolExecutor thread = new ThreadPoolExecutor(5,5,5,TimeUnit.SECONDS,new ArrayBlockingQueue<>(10),Executors.defaultThreadFactory(),new ThreadPoolExecutor.AbortPolicy());RunnableA runnableA = new RunnableA();thread.submit(runnableA);thread.submit(runnableA);thread.shutdown();}
}

import java.util.concurrent.locks.ReentrantLock;/*** @author  silence*/
public class RunnableA implements Runnable {private static final ReentrantLock LOCK = new ReentrantLock();private static int number = 0;@Overridepublic void run() {while (true) {LOCK.lock();try {if (number == 100) {break;}//1线程打印奇数 2线程打印偶数String name = Thread.currentThread().getName();if (number % 2 == 0) {if ("pool-1-thread-1".equals(name)) {System.out.println("我是" + name + "线程,我打印奇数" + ++number);}} else {if ("pool-1-thread-2".equals(name)) {System.out.println("我是" + name + "线程,我打印偶数" + ++number);}}} finally {LOCK.unlock();}}}
}

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

  1. Java多线程面试题:子线程循环10次,接着主线程循环100,接着又回到子线程循环10次, 接着再回到主线程又循环100,如此循环50次

    近在学习多线程,特贴在这里,并附上自己所作答案(参考与张孝祥老师的方法). 题目如下: 子线程循环10次,接着主线程循环100,接着又回到子线程循环10次, 接着再回到主线程又循环100,如此循环50 ...

  2. 利用Python语言编程,完成猜数游戏,系统随机产生一个1到100的数字num1,用户输入一个数字guess,如果没有猜对,根据系统给出的提示重新猜数,直到才对为止。

    利用Python语言编程,完成猜数游戏,系统随机产生一个1到100的数字num1,用户输入一个数字guess,如果没有猜对,根据系统给出的提示重新猜数,直到才对为止. 要求:(1)系统每次都要给出新的 ...

  3. Python 猜100以内数字

    Python 猜100以内数字 引言 猜100以内数字游戏,程序内先设定被猜的数值. 用户给出的值偏小则给出提示"太小": 用户给出的值偏大,给出提示"太大", ...

  4. 输出1至100的数字之和;

    代码如下: int sum = 0;     for (int i = 1; i <= 100; i++)     {         sum += i;     }     cout < ...

  5. 将1~100的数字放到10*10的表格中

    //将1~100的数字放到10*10的表格中 自己写的简单的JS代码块 随意分享一下 document.write("<table border='1px' cellspacing=' ...

  6. matlab利用for循环对1到100的数字进行求和

    matlab利用for循环对1到100的数字进行求和 打开matlab软件,点击"新建脚本",不建议在命令行中直接执行(因为输入错误,基本没法修改),先在编辑器里面输入,如果只是单 ...

  7. python3 生成100个数字+字母6位数密码串

    正值七夕佳节, 女朋友为解决突发实际问题提出需求:可以 生成100个数字+字母6位数密码串 吗? 我:能. 放下手机,拿起笔记本就是干 整理了下思路,由于紧急需要,不到一分钟形成如下实现思路: 1.生 ...

  8. java 多线程。 编写10个线程,第一个线程从1加到10,第二个线程第11加到20,。。。第10个线程从91加到100.最够把10个线程结果相加

    java 基础教材中多线程一章 我觉得 难 的一个问题. 首先 要用多线程实现 . 因此要有类继承 Thread 或者 实现 Runable. 由于 每个线程 的 操作数 不一样 我生成了十个不同对象 ...

  9. python1到100能被5整除_python练习题:求从1到100的数字中所有既能被3整除又能被5整除的数字的有哪些...

    python练习题: # 求从1到100的数字中所有既能被3整除又能被5整除的数字的有哪些 for i in range(1, 101): if (i%15 == 0): print(i) # 判断是 ...

最新文章

  1. 布袋除尘器过滤风速多少_塑烧板除尘器过滤风速选多少
  2. Shell printf 命令
  3. 第三篇 SpringBoot 2 x中使用JPA
  4. linux测试dvi接口,Pro Capture-DVI 2路高清DVI采集卡 支持Linux系统更专业
  5. Qt QProces的使用
  6. mysql直接执行文件格式_Windows 环境下执行 .sql 格式文件方式
  7. Canvas入门06-线段与像素边界
  8. linux基于域的虚拟目录,RHELAS4.0 apache配置之我的小结(虚拟目录,虚拟主机)
  9. Win11系统可以快速截屏吗?
  10. Smarty - 下载
  11. 分析一个简单的特洛伊木马(虾神写的)
  12. 计算机打开查看方式默认是什么样,win10图片打开方式里没有默认照片查看器的解决方法...
  13. esp8266智能开关灯制作教程
  14. Oracle 如何生成随机数字、字符串、日期、验证码以及 UUID
  15. 如何解决hangfire使用redis存储时,如果采用了prefix报“Key has MOVED from Endpoint”的错...
  16. JavaScript复习二
  17. 程序分析与优化 - 6 循环优化
  18. 郭盛华:警惕黑客通过共享充电宝入侵手机
  19. 如何去掉PDF文档中的水印?
  20. lambada表达式介绍

热门文章

  1. 电脑机箱cad图纸_如何批量打印高清黑白CAD图纸?这么好用的方法现在才知道
  2. android studio内置终端,Android Studio Terminal xx不是内部或者外部命令
  3. rapidxml在qt linux(gcc)下写xml文件出错
  4. 怎样在vs中监视char*字符串_字符串指针数据类型
  5. cdh界面 hue 配置hbase_海量数据存储技术之HBase:使用HBase Shell操纵HBase
  6. 【转】1.9 Asp.Net Core 轻松学-多线程之取消令牌(
  7. 单片机c语言控制显示器,单片机实现LCD液晶显示器控制原理..docx
  8. SparkStreaming - 无状态与有状态 updataStateByKey
  9. HDFS--分布式文件系统
  10. mysql mybatis类型对应_Mybatis与数据库的类型对应