簡體   English   中英

Java中的計時器不會暫停程序?

[英]Timer in Java that doesn't pause the program?

我想知道是否可以使用某種形式的計時器來暫停我的所有代碼Thread.sleep(ms)不是我所需要的,因為它可以暫停我的所有代碼。

編輯:好的,我想我把這句話弄錯了。 這是我的編輯:有沒有一種方法可以在Java中測量一定的時間而不會暫停我的main方法?

我喜歡使用Executors類。 它有一個很好的方法,它是newScheduledThreadPool 它為您提供了ScheduledExecutorService實例,該實例具有許多調度方法。

在這里查看: http : //docs.oracle.com/javase/7/docs/api/java/util/concurrent/Executors.html

ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
scheduler.schedule(threadToExecute, 10, TimeUnit.SECONDS);

此代碼將在10秒后啟動threadToExecute thread ,而不會暫停您的主線程。

取決於您使用的框架。 一種非常通用的方法是啟動一個新Thread ,通過Thread.sleep(ms)暫停該線程,然后在該延遲后執行您想做的任何事情,但是由於並發性問題,這當然需要稍加注意。

您可能需要研究Timer類。 您可以將其附加到線程,安排事件並添加延遲。 您可以執行的操作是創建一個線程,使其與主線程並排運行。 因為它們將位於兩個完全不同的線程上,所以您不必擔心它們會相互干擾。 要運行另一個線程,您可以創建一個擴展Thread的類並運行它。 然后使用Timer(String name)構造函數為線程創建一個Timer。

暫無
暫無

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

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