看板 java 關於我們 聯絡資訊
我有一隻程式 迴圈每五分鐘會執行一次"Agent agent=new Agent();" "agent.executeTask();" 這個agent會生出6條thread執行,並印出結果 "ex: Thread-n completed" 然後過了五分鐘再"Agent agent=new Agent();" ...loop 由於我這隻程式可能一跑就是半年以上不會停, 雖然process的總thread數目不會累加,那6條thread的確會被回收 使用的memory的大小也在合理範圍內 但看著Thread的getName()出來的名字一直增加 ex. Thread-12345 completed Thread-12346 completed Thread-12347 completed 還是會有點毛毛的 我想問的是,雖然getId()傳回的型別是long 、getName()傳回的是String 但這樣長期增加下去可能會有什麼不可預期的結果嗎? PS.因為時間的關係,還沒時間改寫成thread pool 謝謝各位 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.221.67.235 ※ 編輯: gmoz 來自: 61.221.67.235 (10/18 14:39)
dou0228:開 JProfiler 去看, 怕的話把 5分鐘改短 暴力跑看看 10/18 18:28
tkcn:long 範圍到 2^63-1,試算一下就知道不太可能跑完了 :p 10/18 22:02
tkcn:就算真的超過了,也只是 overflow 變成負數,應不會有問題 10/18 22:06