あるフリーランスエンジニアの色んなメモ!! ITスキル・ライフハックとか

Python:セマフォ(Semaphore)の使い方

セマフォ(Semaphore)を使用することにより、一度に実行されるスレッドの数を制限する


実装例

from threading import Semaphore, Thread


def my_func(semaphore, var1, var2):
    '''
    threadで実行する関数にSemaphoreを引数として渡す
    :param Semaphore semaphore:
    :param str var1:
    :param str var2:
    '''
    with semaphore:
        # do something


def main():
    # threadを4つまで起動する
    s = Semaphore(4)

    ...

    # my_funcをthreadで実行する
    t = Thread(
            target=my_func,
            args=(s, var1, var2)
    )
    t.start()
comments powered by Disqus