_汤姆凯特 level
获赞
6
粉丝
1
关注
3
看过 TA
27
河南工学院
2025
Java
IP属地:河南
暂未填写个人简介
私信
关注
2023-05-27 01:08
河南工学院 Java
大佬们,我有个问题,可以帮忙解决下吗。🥹🥹问题:两个线程交替打印0-100,当我使用了for循环,为什么会重复打印?结果是线程一打印0线程二打印0线程一打印1线程二打印1…线程一打印100线程二打印100当我把变量i改为static修饰为共享数据时,问题就解决了。但是我不是只new了一次pk对象,也就是说我不加static不也是两个线程共享变量i吗?那不应该不会重复打印吗?代码如下 谢谢大佬们class p2 {    public static void main(String[] args) {        pk p=new pk();        Thread t1=new Thread(p);        Thread t2=new Thread(p);        t1.setName("线程一");        t2.setName("线程二");        t1.start();        t2.start();    }}class pk implements Runnable{    public void run() {        synchronized (this) {            for(int i=0;i<=100;i++) {                System.out.println(Thread.currentThread().getName()+"在打印数字"+i);                notify();                try {                    wait();                } catch (Exception e) {                    throw new RuntimeException();                }            }        }    }} #Java#  #多线程#
0 点赞 评论 收藏
分享
关注他的用户也关注了:
牛客网
牛客企业服务