在Python中开启多线程可以通过以下几种方法:
1. 使用`threading`模块:
from threading import Thread
def task1():
for i in range(5):
print("Task 1 executing...")
time.sleep(1)
def task2():
for i in range(5):
print("Task 2 executing...")
time.sleep(1)
t1 = Thread(target=task1)
t2 = Thread(target=task2)
t1.start()
t2.start()
t1.join()
t2.join()
print("All tasks completed.")
2. 使用`concurrent.futures`模块中的`ThreadPoolExecutor`类:
from concurrent.futures import ThreadPoolExecutor
def my_function():
线程执行的代码
pass
with ThreadPoolExecutor() as executor:
executor.submit(my_function)
3. 使用`multiprocessing`模块中的`Process`类(虽然主要用于进程,但也可以用于线程):
from multiprocessing import Process
def task1():
for i in range(5):
print("Task 1 executing...")
time.sleep(1)
def task2():
for i in range(5):
print("Task 2 executing...")
time.sleep(1)
t1 = Process(target=task1)
t2 = Process(target=task2)
t1.start()
t2.start()
t1.join()
t2.join()
print("All tasks completed.")
请注意,Python的全局解释器锁(GIL)限制了同一时间只有一个线程可以执行Python字节码。因此,对于CPU密集型任务,多线程可能不会提供预期的性能提升。在这种情况下,可以考虑使用`multiprocessing`模块中的`Process`类,它不受GIL的限制,可以创建多个进程来并行执行任务。
另外,请确保在`if __name__ == '__main__':`块中启动线程,以避免在Windows平台上出现递归创建子进程的错误。