運行了以后等了好久,500個線程也執(zhí)行不完是為什么?
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循環(huán)中打印出
Thread.activeCount()
的數(shù)量,并輸出運行的線程名稱,確認一下除了主線程外還有哪個線程在執(zhí)行。