簡體   English   中英

在Java中不帶線程運行計時器

[英]Run timer without thread in java

我正在構建運行1000個(及更多)客戶端的模擬器,在每個要在X時間后運行任務的客戶端中,我嘗試了TimerTask ,問題是在每個任務(超過1000個)中創建了新線程。

是否有沒有線程的任務計時器?

您可以使用單個Timer調度多個TimerTask,但它們不能同時運行。 根據您的需要,這可能就足夠了。

但是,引用Timer的javadoc:

Java 5.0引入了java.util.concurrent包,其中的並發實用程序之一是ScheduledThreadPoolExecutor ,它是一個線程池,用於以給定的速率或延遲重復執行任務。 實際上,它是Timer / TimerTask組合的更通用的替代品,因為它允許多個服務線程,接受各種時間單位,並且不需要子類化TimerTask (只需實現Runnable )。 使用一個線程配置ScheduledThreadPoolExecutor使其等效於Timer

如果要模擬1000個(和更多)同時執行的客戶端,則必須使用Thread 否則,您將只有一個線程,在其中您的確定邏輯將指定何時完成什么客戶端的邏輯-實際上不會模擬並行執行的客戶端。

暫無
暫無

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

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