在Python中,可以使用`threading`模塊來(lái)創(chuàng)建和管理多線程,使用`multiprocessing`模塊來(lái)創(chuàng)建和管理多進(jìn)程。
以下是一個(gè)使用多線程的例子:
```python
import threading
def print_numbers():
for i in range(1, 6):
print(i)
thread1 = threading.Thread(target=print_numbers)
thread2 = threading.Thread(target=print_numbers)
thread1.start()
thread2.start()
thread1.join()
thread2.join()
print("Done")
```
在這個(gè)例子中,我們創(chuàng)建了兩個(gè)線程`thread1`和`thread2`,它們都會(huì)調(diào)用`print_numbers`函數(shù)來(lái)打印數(shù)字1到5。然后通過(guò)調(diào)用`start`方法啟動(dòng)線程,最后通過(guò)調(diào)用`join`方法等待線程執(zhí)行完畢。
以下是一個(gè)使用多進(jìn)程的例子:
```python
import multiprocessing
def print_numbers():
for i in range(1, 6):
print(i)
process1 = multiprocessing.Process(target=print_numbers)
process2 = multiprocessing.Process(target=print_numbers)
process1.start()
process2.start()
process1.join()
process2.join()
print("Done")
```
在這個(gè)例子中,我們創(chuàng)建了兩個(gè)進(jìn)程`process1`和`process2`,它們也會(huì)調(diào)用`print_numbers`函數(shù)來(lái)打印數(shù)字1到5。然后通過(guò)調(diào)用`start`方法啟動(dòng)進(jìn)程,最后通過(guò)調(diào)用`join`方法等待進(jìn)程執(zhí)行完畢。
需要注意的是,在使用多線程時(shí),Python的全局解釋鎖(GIL)會(huì)限制同一時(shí)刻只能有一個(gè)線程執(zhí)行Python字節(jié)碼,因此在多核CPU上并不能真正實(shí)現(xiàn)并行執(zhí)行。而在使用多進(jìn)程時(shí),每個(gè)進(jìn)程都有自己獨(dú)立的Python解釋器,因此可以實(shí)現(xiàn)真正的并行執(zhí)行。