執行緒池ThreadPoolFactory 工具

2021-08-27 05:06:53 字數 1894 閱讀 8775

new

thread

(new

runnable()

@override

public

void

run()}

).start()

;

感覺方便直接,在任務結束後gc也會自動**該執行緒,不過它還在存在很大的弊端

如果某個地方需要開啟大量的執行緒。建立執行緒和銷毀執行緒是需要時間的,這樣會導致效能不足

執行緒無法管理,相互競爭導致卡頓或者oom

功能太過單一

所以執行緒池就出現了,我們需要重用執行緒,要學會使用它:

1.定義乙個介面

public

inte***ce

ithread

2.定義threadsingle實現ithread

public

class

threadsingle

implements

ithread

}

3.定義threadpoolproxy類

public

class

threadpoolproxy

private threadpoolexecutor initthreadpoolexecutor()

}}return mexecutor;

}public

void

execute

(runnable task)

public future<

?>

submit

(runnable task)

public

void

removetask

(runnable task)

4.定義threadpool,實現ithread

public

class

threadpool

implements

ithread

public

static threadpool getinstance()

}return _intance;

}@override

public

void

execute

(runnable runnable)}}

else

}}

5.定義threadsingle,實現ithread

public

class

threadsingle

implements

ithread

}

6.定義threadpoolfactory

public

class

threadpoolfactory

public

static threadpoolproxy getdownloadpool()

}}return mdownloadpool;

}}

在主程式中的使用

threadpoolfactory.

getthread()

.execute

(new

runnable()

});

簡單方便,當程式呼叫執行緒時,會去執行緒池訪問,如果執行緒池無現有執行緒或空閒時就會建立,如果存在空閒的執行緒,不會再重新去建立,呼叫空閒的執行緒去執行

執行緒 執行緒池

執行緒池是一種多執行緒處理形式,處理過程中將任務新增到佇列,然後在建立執行緒後執行,主要實現 建立執行緒和管理執行緒,並且給執行緒分配任務。執行緒池中的執行緒是併發執行的。乙個比較簡單的執行緒池至少應包含執行緒池管理器 工作執行緒 任務列隊 任務介面等部分。其中執行緒池管理器的作用是建立 銷毀並管理...

執行緒 執行緒池

乙個簡單執行緒的建立和銷毀如下 與程序程序相比,執行緒是一種輕量級的工具,但是輕量並不代表沒有,它的建立和關閉依然需要花費時間,如果建立和銷毀的時間還大於執行緒本身完成的工作,那就會得不償失,甚至會造成out of memory。即使沒有,大量的執行緒 也會給gc帶來巨大的壓力。為了解決這樣的問題,...

mysql 執行緒池 c MySQL執行緒池

mysql執行緒池 在麼mysql中,執行緒池指的是用來管理處理mysql客戶端連線任務的執行緒的一種機制。如果把執行緒看做系統資源那麼執行緒池本質上是對系統資源的管理,對應作業系統來說執行緒的建立和銷毀是比較消耗系統資源的,頻繁的建立與銷毀執行緒必然給系統帶來不必要的資源浪費,特別是在高負載的情況...