Python 实现多线程的几种方式
Posted Frank_Shen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 实现多线程的几种方式相关的知识,希望对你有一定的参考价值。
threading.Thread 模块
继承实现:
import threading import time class TestThread(threading.Thread): def __init__(self, name): super(TestThread, self).__init__() self.name = name def run(self): print(‘线程%s 开始‘ % self.name) time.sleep(5) print(‘线程%s 结束‘ % self.name) def main(): threads = [] thread_name = [‘1‘, ‘2‘, ‘3‘] for name in thread_name: t = TestThread(name) threads.append(t) for thread in threads: thread.start() # 启动线程 for thread in threads: thread.join() # 阻塞主线程 if __name__ == ‘__main__‘: main()
函数实现:
import threading import time def main(name): print(‘线程%s 开始‘ % name) time.sleep(5) print(‘线程%s 结束‘ % name) if __name__ == ‘__main__‘: threads = [] thread_name = [‘1‘, ‘2‘, ‘3‘] for name in thread_name: t = threading.Thread(target=main, args=(name,)) t.start() threads.append(t) for thread in threads: thread.join()
concurrent.futures 模块
线程池:
import time from concurrent.futures import ThreadPoolExecutor def main(name): print(‘线程%s 开始‘ % name) time.sleep(5) print(‘线程%s 结束‘ % name) if __name__ == ‘__main__‘: thread_name = [‘1‘, ‘2‘, ‘3‘] with ThreadPoolExecutor(4) as executor: executor.map(main, thread_name)
以上是关于Python 实现多线程的几种方式的主要内容,如果未能解决你的问题,请参考以下文章