java多线程打印0-100

本文通过一个Java代码示例,展示了如何使用synchronized关键字和wait、notifyAll方法实现多线程间的同步与通信。代码中定义了一个Solution类,包含一个计数器和一个用于同步的对象。三个线程(A、B、C)轮流执行,每次执行时增加计数器,并打印当前线程名和计数值,直至计数器达到100。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

class Solution {
    public int count = 0;
    public final Object obj = new Object();
    public class Runner implements Runnable{
        @Override
        public void run() {
            while(count<100){
                synchronized(obj){
                    System.out.println(Thread.currentThread().getName()+" : "+count);
                    count++;
                    obj.notifyAll();
                    try{
                        if(count<100)   obj.wait();
                    }catch(Exception e){
                        e.printStackTrace();
                    }
                }
            }
        }
    }
    public void test(){
        new Thread(new Runner(),"A").start();
        new Thread(new Runner(),"B").start();
        new Thread(new Runner(),"C").start();
    }
    public static void main(String[] args) {
        Solution solution = new Solution();
        solution.test();
    }
}

结果显示:

A : 0
C : 1
B : 2
C : 3
A : 4
B : 5
C : 6
A : 7
B : 8
C : 9
A : 10
B : 11
C : 12
A : 13
B : 14
C : 15
A : 16
B : 17
C : 18
A : 19
B : 20
C : 21
A : 22
B : 23
C : 24
A : 25
B : 26
C : 27
A : 28
B : 29
C : 30
A : 31
B : 32
C : 33
A : 34
B : 35
C : 36
A : 37
B : 38
C : 39
A : 40
B : 41
C : 42
A : 43
B : 44
C : 45
A : 46
B : 47
C : 48
A : 49
B : 50
C : 51
A : 52
B : 53
C : 54
A : 55
B : 56
C : 57
A : 58
B : 59
C : 60
A : 61
B : 62
C : 63
A : 64
B : 65
C : 66
A : 67
B : 68
C : 69
A : 70
B : 71
C : 72
A : 73
B : 74
C : 75
A : 76
B : 77
C : 78
A : 79
B : 80
C : 81
A : 82
B : 83
C : 84
A : 85
B : 86
C : 87
A : 88
B : 89
C : 90
A : 91
B : 92
C : 93
A : 94
B : 95
C : 96
A : 97
B : 98
C : 99
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值