Thread数を設定してみたコード
| 登録日 | :2023/11/14 06:59 |
|---|---|
| カテゴリ | :Python基礎 |
試しに、Thread数を可変にしてコードを書いてみた。
ThreadはForループで立ち上げると良いようだ。
Semaphoreを指定することで、同時実行数をコントロールができそうだ。
つまり、Threadingで並列実行できる処理と、同時実行数が制限される処理を、関数にSemaphoreを引数に与えることで制御ができる、ということだ。
また、ここでは使っていないが、Queueを使って値(リスト)を共有することもできそうだ。
import threading
import logging
import time
logging.basicConfig(
level=logging.DEBUG, format='%(threadName)s: %(message)s')
def worker(semaphore):
with semaphore:
logging.debug('start')
time.sleep(2)
logging.debug('end')
if __name__ == '__main__':
NUM_THREAD = 5
semaphore = threading.Semaphore(3)
for _ in range(NUM_THREAD):
t = threading.Thread(target=worker, args=(semaphore, ))
t.start()