運行了以后等了好久,500個線程也執行不完是為什么?
package?synchronize;
public?class?VolatileDemo?{
????private?volatile?int?number?=?0;
????public?int?getNumber()?{
????????return?this.number;
????}
????public?void?increase()?{
????????this.number++;
????}
????public?static?void?main(String[]?args)?{
????????final?VolatileDemo?vd?=?new?VolatileDemo();
????????for?(int?i?=?0;?i?<?500;?i++)?{
????????????new?Thread(()?->?vd.increase()).start();
????????}
????????while?(Thread.activeCount()?>?1)?{
????????????Thread.yield();
????????}
????????System.out.println("number?is?"?+?vd.getNumber());
????}
}這個代碼在idea里面啟動了以后,一直不結束是為什么?
2019-01-22
改成 > 2,就可以返回了
2019-01-20
idea中Thread.activeCount()返回的是2,是因為多了個monitor ctrlbreak線程。
可參考?http://blog.csdn.net/xiaolinzi007/article/details/44487851
2019-01-04
在while循環中打印出
Thread.activeCount()的數量,并輸出運行的線程名稱,確認一下除了主線程外還有哪個線程在執行。