運(yùn)行了以后等了好久,500個(gè)線程也執(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()); ????} }
這個(gè)代碼在idea里面啟動(dòng)了以后,一直不結(jié)束是為什么?
2019-01-22
改成 > 2,就可以返回了
2019-01-20
idea中Thread.activeCount()返回的是2,是因?yàn)槎嗔藗€(gè)monitor ctrlbreak線程。
可參考?http://blog.csdn.net/xiaolinzi007/article/details/44487851
2019-01-04
在while循環(huán)中打印出
Thread.activeCount()
的數(shù)量,并輸出運(yùn)行的線程名稱,確認(rèn)一下除了主線程外還有哪個(gè)線程在執(zhí)行。