题目1

创建3个线程,让3个线程分别按着顺序打印AAAA,BBBB,CCCC(第一个线程打印AAAA,第二个线程打印BBBB,第一个线程始终在第二个线程之前打印)

代码(该代码为打印3个线程分别打印一次)

public class JoinTest {

public static void main(String[] args) {

Thread prev = Thread.currentThread();

String[] array = {"AAAA","BBBBB","CCCC"};

for(int i = 0;i<3;i++){

Thread thread = new Thread(new MyThread(prev,array[i]),"Thread"+i);

thread.start();

prev = thread;

}

}

}

class MyThread implements Runnable{

private Thread thread;

private String print;

public MyThread(Thread thread,String print){

this.thread = thread;

this.print = print;

}

@Override

public void run() {

try {

thread.join();

for(int i = 0;i<3;i++){

System.out.println(print);

}

} catch (InterruptedException e) {

e.printStackTrace();

}

System.out.println(Thread.currentThread().getName());

}

}

运行结果

AAAA

AAAA

AAAA

Thread0

BBBB

BBBB

BBBB

Thread1

CCCC

CCCC

CCCC

Thread2

题目1 扩展

只创建3个线程,循环打印 题目1 的字符串,并且按照上题中的线程顺序打印

java并发的艺术_Java并发编程的艺术(一)相关推荐

  1. JAVA线程并发数量控制_Java并发工具类(三):控制并发线程数的Semaphore

    作用 Semaphore(信号量)是用来控制同时访问特定资源的线程数量,它通过协调各个线程,以保证合理的使用公共资源. 简介 Semaphore也是一个线程同步的辅助类,可以维护当前访问自身的线程个数 ...

  2. java 共享锁 独占锁_Java并发编程锁之独占公平锁与非公平锁比较

    Java并发编程锁之独占公平锁与非公平锁比较 公平锁和非公平锁理解: 在上一篇文章中,我们知道了非公平锁.其实Java中还存在着公平锁呢.公平二字怎么理解呢?和我们现实理解是一样的.大家取排队本着先来 ...

  3. java中解决脏读_java并发编程学习之脏读代码示例及处理

    使用interrupt()中断线程     当一个线程运行时,另一个线程可以调用对应的Thread对象的interrupt()方法来中断它,该方法只是在目标线程中设置一个标志,表示它已经被中断,并立即 ...

  4. Java并发基础总结_Java并发编程笔记之基础总结(二)

    一.线程中断 Java 中线程中断是一种线程间协作模式,通过设置线程的中断标志并不能直接终止该线程的执行,而是需要被中断的线程根据中断状态自行处理. 1.void interrupt() 方法:中断线 ...

  5. java并发数据共享机制_Java并发编程:核心理论之数据共享性

    原标题:Java并发编程:核心理论之数据共享性 并发编程是Java程序员最重要的技能之一,也是最难掌握的一种技能.它要求编程者对计算机最底层的运作原理有深刻的理解,同时要求编程者逻辑清晰.思维缜密,这 ...

  6. java 关闭守护线程_Java并发编程之线程生命周期、守护线程、优先级、关闭和join、sleep、yield、interrupt...

    Java并发编程中,其中一个难点是对线程生命周期的理解,和多种线程控制方法.线程沟通方法的灵活运用.这些方法和概念之间彼此联系紧密,共同构成了Java并发编程基石之一. Java线程的生命周期 Jav ...

  7. java线程本地变量_Java并发编程示例(九):本地线程变量的使用

    这篇文章主要介绍了Java并发编程示例(九):本地线程变量的使用,有时,我们更希望能在线程内单独使用,而不和其他使用同一对象启动的线程共享,Java并发接口提供了一种很清晰的机制来满足此需求,该机制称 ...

  8. java程序使用异步总线_JAVA并发编程基础

    CPU核心 核心(Die)又称为内核,是CPU最重要的组成部分.CPU中心那块隆起的芯片就是核心,是由单晶硅以一定的生产工艺制造出来的,CPU所有的计算.接受/存储命令.处理数据都由核心执行.各种CP ...

  9. java queue 线程安全_java并发编程之线程安全方法

    线程安全的实现方法,包含如下方式 一, 互斥同步 使用互斥锁的方式. 举个栗子 synchronized,最常用的同步实现方案, ReentrantLock,java并发包中工具,后续介绍. 互斥同步 ...

最新文章

  1. 备忘--Sinfors 设备出厂IP
  2. Python做文本挖掘的情感极性分析
  3. java的socket读取一行就结束运行了?使用这种方法可以读取多行数据!
  4. C++三大继承构造函数的执行顺序详解
  5. delphi中的ParamStr
  6. ionic更改端口号
  7. filter2D函数的.depth()变量的设定
  8. websocket的WebSocketServer无法注入service
  9. 阻塞会话_使用根会话解决SQL阻塞链并进行故障排除
  10. element提交图片限制一张_element-ui上传图片限制图片比例
  11. 快轮天才发明家刘峰,上榜福布斯2017年亚洲人物
  12. react-native升级到0.63ios图片不展示
  13. 树莓派安装win10
  14. Deepin 深度技术 Windows XP SP2 珍藏版
  15. 清理谷歌浏览器注册表_Win10系统下注册表chrome残留无法删除
  16. 文本自动生成研究进展与趋势
  17. [JS jQuery项目]仿网易云音乐项目问题摘要
  18. 数据结构队列之企业级应用--优先队列
  19. FM-分解机模型详解
  20. CodeForce 597ADivisibility

热门文章

  1. 如何在Ubuntu 14.04上安装MySQL
  2. C#中使用ajax请求
  3. 熊猫多模式站群系统 开发日志 第二天
  4. css flex 小记
  5. ios14系统 GIF图展示异常问题
  6. C#LeetCode刷题之#665-非递减数列( Non-decreasing Array)
  7. ux和ui_使用UX设计师为Amazon的Alexa学习会话式UI的基础
  8. react api_如何在WordPress REST API之上构建React应用
  9. es6生成器_ES6生成器
  10. 从末尾截取字符串_【MID】文本截取函数如何使用?