このページの翻訳:
- 日本語 (ja)
- English (en)
最近の更新
- 03 Zed editor 設定 [Windowsでビルド]
- 09 ↷ 50_dialy:2025:09:09 から 50_dialy:2025:09:08 へページを名称変更しました。
- 06 ↷ 50_dialy:2025:06 から 50_dialy:2025:09:06 へページを移動しました。
最近の更新
parallel.py
import time
from concurrent.futures import ThreadPoolExecutor
from logging import StreamHandler, Formatter, INFO, getLogger
def init_logger():
handler = StreamHandler()
handler.setLevel(INFO)
handler.setFormatter(Formatter("[%(asctime)s] [%(threadName)s] %(message)s"))
logger = getLogger()
logger.addHandler(handler)
logger.setLevel(INFO)
def task(v):
getLogger().info("%s start", v)
time.sleep(1.0)
getLogger().info("%s end", v)
def main():
init_logger()
getLogger().info("main start")
with ThreadPoolExecutor(max_workers=2, thread_name_prefix="thread") as executor:
for i in range(5):
executor.submit(task, i)
getLogger().info("submit end")
getLogger().info("main end")
if __name__ == "__main__":
main()
# python3.6 parallel.py [2019-08-09 11:23:41,298] [MainThread] main start [2019-08-09 11:23:41,300] [thread_0] 0 start [2019-08-09 11:23:41,301] [thread_1] 1 start [2019-08-09 11:23:41,301] [MainThread] submit end [2019-08-09 11:23:42,302] [thread_0] 0 end [2019-08-09 11:23:42,302] [thread_0] 2 start [2019-08-09 11:23:42,302] [thread_1] 1 end [2019-08-09 11:23:42,302] [thread_1] 3 start [2019-08-09 11:23:43,303] [thread_0] 2 end [2019-08-09 11:23:43,304] [thread_0] 4 start [2019-08-09 11:23:43,304] [thread_1] 3 end [2019-08-09 11:23:44,305] [thread_0] 4 end [2019-08-09 11:23:44,305] [MainThread] main end