やっていくログ

にんげんをやっていきましょう

【Python】並行処理のおべんきょうの参考

参考として先人の記事のリンクを貼る

動かし方
qiita.com

https://qiita.com/__init__/items/74b36eba31ccbc0364edqiita.com

注意すべき点
qiita.com

並行処理関連の公式ドキュメント
docs.python.jp


試しに、5秒ごとに目的の動作を行わせる

import datetime
import time
import threading
import queue


def func1(event):
    while(1):
        event.wait()
        print('hoge')
        event.clear()
    
    
def func2(event):
    while(1):
        event.wait()
        print('fuga')
        event.clear()
    
        
def timer(event):
    while(1):
        time.sleep(1)
        now=datetime.datetime.now()
        print(now)       
        if now.second%5==0:
            event.set()           


if __name__ == "__main__":
    event = threading.Event()
    t1 = threading.Thread(target=func1, args=(event,))
    t2 = threading.Thread(target=func2, args=(event,))
    t3 = threading.Thread(target=timer, args=(event,))
    t1.start()
    t2.start()
    t3.start()

結果、5秒に1回 hoge fuga する

2019-02-26 00:07:32.680651
2019-02-26 00:07:33.700176
2019-02-26 00:07:34.703568
2019-02-26 00:07:35.704306
hogefuga
2019-02-26 00:07:36.713224
2019-02-26 00:07:37.718298
2019-02-26 00:07:38.732420
2019-02-26 00:07:39.739030
2019-02-26 00:07:40.753466
fugahoge
2019-02-26 00:07:41.767390
2019-02-26 00:07:42.777210
2019-02-26 00:07:43.786152
2019-02-26 00:07:44.799364
2019-02-26 00:07:45.815294
hogefuga
2019-02-26 00:07:46.828104
2019-02-26 00:07:47.832805
2019-02-26 00:07:48.848034
2019-02-26 00:07:49.858399
2019-02-26 00:07:50.863243
hogefuga
2019-02-26 00:07:51.865927
2019-02-26 00:07:52.879863
2019-02-26 00:07:53.895192
2019-02-26 00:07:54.898684
2019-02-26 00:07:55.899330
fugahoge
…

以後適宜追記