第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

如何在運(yùn)行時(shí)更改線程的 Runnable 目標(biāo)

如何在運(yùn)行時(shí)更改線程的 Runnable 目標(biāo)

ITMISS 2022-12-28 14:04:31
我想用 Java 構(gòu)建自己的 ExecutorService,它能夠“提交(可調(diào)用任務(wù))”給定任務(wù)。我打算使用一個(gè)包含多個(gè)“線程(可運(yùn)行目標(biāo))”的線程池。這個(gè)想法是創(chuàng)建固定數(shù)量的線程,這些線程從已由“提交”方法填充的列表中取出 FutureTask 對象。FutureTask 對象也在提交方法中創(chuàng)建。我的問題是我只能在創(chuàng)建線程時(shí)(通過構(gòu)造函數(shù))將一個(gè)Runnable對象(這里:FutureTask)交給一個(gè)線程,但顯然FutureTasks需要?jiǎng)討B(tài)分配給一個(gè)線程(當(dāng)項(xiàng)目從列表中刪除時(shí)). 有什么辦法嗎?// content of submit, parameter: myTaskFutureTask<V> newFutureTask = new FutureTask<V>(myTask);taskQueue = new BlockingQueue<FutureTask<V>>();try {    taskQueue.put(newFutureTask);} catch (InterruptedException ex) { }return newFutureTask;// remove item from list and hand it over to thread// method within MyThread extends Thread (thread pool) classvoid exec() {    FutureTask<V> task;    try {        task = taskQueue.take();        // TODO: run task somehow????        } catch(InterruptedException ex) { }}
查看完整描述

2 回答

?
縹緲止盈

TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個(gè)贊

看一段偽代碼:


while (true) {

   task = fetch task

   If no task: wait/yield

   Else: execute task 

}

換句話說:您只需實(shí)現(xiàn)一個(gè)run()方法,該方法循環(huán)并執(zhí)行任何Runnable(或傳遞給它的任何內(nèi)容)的 run 方法。如果沒有工作可用,則該方法會休眠或等待通知。


查看完整回答
反對 回復(fù) 2022-12-28
?
一只萌萌小番薯

TA貢獻(xiàn)1795條經(jīng)驗(yàn) 獲得超7個(gè)贊

首先,F(xiàn)utureTask是Runnable,所以你可以task.run();在// TODO.


其次,你根本不需要taskQueue = new BlockingQueue<FutureTask<V>>();。將您的實(shí)現(xiàn)ExecutorService作為對現(xiàn)有Executor:的補(bǔ)充


class MyExecutorService implements ExecutorService {


   private final Executor executor;


   public MyExecutorService(Executor executor) {

       this.executor=executor;

   }


   public Future<?> submit(Runnable task) {

       FutureTask task = new FutureTask(task);

       executor.exec(task);

       return task;

   }

}


查看完整回答
反對 回復(fù) 2022-12-28
  • 2 回答
  • 0 關(guān)注
  • 142 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號