![](/img/trans.png)
[英]How to pause program execution without blocking a Timer (Java Swing)?
[英]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.