多线程交替打印ABC

题目描述

建立三个线程A、B、C,A线程打印10次字母A,B线程打印10次字母B,C线程打印10次字母C,但是要求三个线程同时运行,并且实现交替打印,即按照ABCABCABC的顺序打印。

 

背景:其实这道题是在很久之前有次面试的笔试题,当时脑子里想起来要保证线程的执行顺序可以让线程sleep啊,我记得我写了一个for循环10次打印三个线程平均每个睡10ms,其实这已经违背题目了,题目要求三个线程,我那样弄了30个线程,现在想想真der。有趣的是最近我面试过的人对这到题目的思路和我当时一样,让线程sleep。。。。。。然后就和我当时一样回去等通知了。。。。
 

解析:

使用synchronized

public static void main (String[] arr) throws Exception{
        Object a=new Object ();
        Object b=new Object ();
        Object c=new Object ();


        Thread A=new Thread (new t ("A",a,b));//这个执行顺序 可以看下面代码撸一下
        A.start ();
        Thread.sleep (10); // 这里sleep主要保证线程启动顺序
        Thread B=new Thread (new t ("B",b,c));
        B.start ();
        Thread.sleep (10);
        Thread C=new Thread (new t ("C",c,a));        
        C.star
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值