多线程交替顺序打印100
遇到一个面试题,三个线程交替打印至100,线程1打印1,4,7;线程二打印2,5,8;线程三打印3,6,9;当时没有想到,补上自己的实现方法mark一下
package com.study.hc.net.designPattern;
/**
* 功能描述
*
* @author Gandalf-z
* @date 2021/3/6 16:44
*/
public class MultiThreadPrint {
/**
* 线程交替执行控制器
*/
private static int thread_index = 0;
/**
* 执行打印计数器,用于判断循环退出条件,需要加volatile,保证可见性
*/
private static volatile int count = 0;
/**
* 线程争抢的锁对象,持有该对象的锁方可执行操作
*/
private static Object obj = new Object();
public static void main(String[] args) {
new Thread(() -> {
printByOrder(0);
}, "Thread-1").start(