Thread.activeCount()运行出错问题

来源:4-2 volatile不能保证原子性(上)

Felix_He

2015-04-13 09:23

......

    System.out.println(Thread.activeCount());

    while (Thread.activeCount() > 1) {

      Thread.yield();

    }


    System.out.println(t.getNum());

按照教程中写的代码

打印结果:

877

1000

FATAL ERROR in native method: JDWP cannot get thread local storage, jvmtiError=JVMTI_ERROR_WRONG_PHASE(112)

JDWP exit error JVMTI_ERROR_WRONG_PHASE(112): cannot get thread local storage [../../../src/share/back/threadControl.c:195]


为什么有警告输出?


写回答 关注

1回答

  • RainbowPeter
    2016-01-14 23:49:38

    你代码写错了哦,while(Thread.activeCount() < 1),是活跃的线程数量小于1,你写成大于号啦

    qq_Mrm...

    没有错啊!!! 那个while循环所表达的意思是,当活跃的线程大于1时,main线程就先yield 等待,让上面的其它线程执行完毕之后,Thread.activeCount() = 1时,跳出while循环,输出结果

    2016-05-09 11:18:50

    共 1 条回复 >

细说Java多线程之内存可见性

用两种方式实现内存可见性,代领大家深层次学习Java中的内存

55910 学习 · 74 问题

查看课程

相似问题