簡體   English   中英

Java計時器和thread.sleep

[英]java timer and thread.sleep

假設我有一個線程在運行,並且里面有一個timer.schedule(task,5000)。 現在讓我們假設計時器開始運行,並且在線程中的某個地方有thread.sleep()。 當線程仍在休眠時,經過了5000毫秒。 計時器的任務在線程休眠時是否仍在運行?

謝謝

Thread.sleep()不能在線程中的任何地方 ,它可以在任務代碼中,因此任務執行將阻塞5000毫秒,然后運行完成。

請注意,java.util.Timer是單線程調度程序,並且如果任務執行被阻止,Timer將無法執行其他調度的任務。 見API

與每個Timer對象相對應的是一個單獨的后台線程,該線程用於依次執行所有Timer的任務。 計時器任務應快速完成 如果計時器任務花費過多時間來完成,它將“占用”計時器的任務執行線程。 反過來,這可能會延遲后續任務的執行,這可能會“累加”並在有問題的任務最終完成時(以及是否)迅速連續執行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM