futuretask

    12熱度

    2回答

    我需要安排將來要完成的工作。我能做到這一點在兩個方面: 創建TimerTask和執行timer.schedule(...); 使用Executors.newScheduledThreadPool(1): ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); ScheduledFuture <?> sch

    2熱度

    1回答

    我現在有代碼,執行以下操作: private final static ExecutorService pool = Executors.newCachedThreadPool(); public void foo(){ FutureTask<MyObject> first_task = createFutureTask(); FutureTask<MyObject> sec

    19熱度

    4回答

    在Java 1.6(和來自Eclipse)中發現在Executors.newCachedThreadPool()中運行FutureTask吞下Runnable.run()方法中的異常後,我試圖想出一種方法來捕獲這些異常,而不添加throw/catch到我所有的Runnable實現。 的API建議重寫FutureTask.setException()應有助於此: 原因這個未來與給定的throwabl

    3熱度

    1回答

    我工作在Java中的調度系統,該系統發出根據的startDate提醒,結束日期和發生(每小時,每天,每週,每月上,星期一等)。我原來是用定時器和TimerTask的班安排提醒: Timer timer = new Timer(); timer.scheduleAtFixedRate(reminder, firstDate, period); 我最近切換到ScheduledExecutorSe

    3熱度

    1回答

    我有一個用java編寫的應用程序,需要找到網絡上所有可訪問的主機。 我使用InetAddress.isReachable()來做到這一點,超時時間爲2000毫秒。 我查找當前本地計算機的IP地址,並基於此我試圖到達其他IP地址,結束1-255丟失了本地計算機的IP地址。 這一切工作正常單線程,只需要很長的時間,因爲大多數的IP地址不可訪問,因爲它們不存在,所以使用2秒超時。 爲了加快速度(和嘗試並

    1熱度

    1回答

    在我的可調用代碼中,我使用信號通知將多個結束行爲通知給另一個線程。 Callable對象在Executor中與FutureTasks排隊。他們在排隊後也可能被取消。 現在,我的問題是我依賴於至少爲我的信令工作而啓動的任務,但看起來Executor只是在任務被標記爲取消之前跳過任務,然後纔有機會運行它。 那麼,有沒有一種方法可以保證任務總是被啓動,並且在運行時總是被取消(通過InterruptedE

    9熱度

    4回答

    我正在提交Callable對象到ThreadPoolExecutor,他們似乎在記憶中繼續存在。 尋找與Eclipse的MAT工具堆轉儲看到Callable對象正在由FutureTask$Sync的贖回變量引用。該FutureTask$Sync由FutureTask的同步變量引用。即FutureTask被FutureTask$Sync的引用,這個$ 0變量。 我對這個閱讀各地(here,here,

    10熱度

    4回答

    我想取消從ThreadPoolExecutor獲得的FutureTask,但我想確保線程池上的Callable已停止它的工作。 如果我調用FutureTask#cancel(false)然後get()(阻塞直到完成),我得到一個CancelledException。這個異常是立即拋出還是在任務停止執行之後拋出?

    40熱度

    5回答

    由於使用ExecutorService可以submit一個Callable任務並返回Future,爲什麼需要使用FutureTask包Callable任務和使用方法execute?我覺得他們都做同樣的事情。

    7熱度

    3回答

    在下面的代碼中,我按照預期在100秒後捕獲了TimeoutException。在這一點上,我希望代碼退出主要和程序終止,但它不斷打印到控制檯。如何讓任務在超時後停止執行? private static final ExecutorService THREAD_POOL = Executors.newCachedThreadPool(); private static <T> T timedCa