并发、多进程、并行和多线程是计算机领域中常见的概念,经常会被混淆。下面是对这些概念的解释及其关系,并附上代码示例来帮助理解。
代码示例:
from threading import Thread
def task1():
for i in range(5):
print("Task 1 executing")
def task2():
for i in range(5):
print("Task 2 executing")
# 创建两个线程并发执行两个任务
thread1 = Thread(target=task1)
thread2 = Thread(target=task2)
thread1.start()
thread2.start()
thread1.join()
thread2.join()
输出结果可能为:
Task 1 executing
Task 2 executing
Task 1 executing
Task 2 executing
Task 1 executing
Task 2 executing
Task 1 executing
Task 2 executing
Task 1 executing
Task 2 executing
代码示例:
from multiprocessing import Process
def task1():
for i in range(5):
print("Task 1 executing")
def task2():
for i in range(5):
print("Task 2 executing")
# 创建两个进程并行执行两个任务
process1 = Process(target=task1)
process2 = Process(target=task2)
process1.start()
process2.start()
process1.join()
process2.join()
输出结果可能为:
Task 1 executing
Task 2 executing
Task 1 executing
Task 2 executing
Task 1 executing
Task 2 executing
Task 1 executing
Task 2 executing
Task 1 executing
Task 2 executing
代码示例:
import multiprocessing
def task1():
for i in range(5):
print("Task 1 executing")
def task2():
for i in range(5):
print("Task 2 executing")
# 创建两个进程并行执行两个任务
pool = multiprocessing.Pool(processes=2)
pool.apply_async(task1)
pool.apply_async(task2)
pool.close()
pool.join()
输出结果可能为:
Task 1 executing
Task 2 executing
Task 1 executing
Task 2 executing
Task 1 executing
Task 2 executing
Task 1 executing
Task 2 executing
Task 1 executing
Task 2 executing
代码示例:
from threading import Thread
def task1():
for i in range(5):
print("Task 1 executing")
def task2():
for i in range(5):
print("Task 2 executing")
# 创建两个线程并发执行两个任务
thread1 = Thread(target=task1)
thread2 = Thread(target=task2)
thread1.start()
thread2.start()
thread1.join()
thread2.join()
输出结果可能为:
Task 1 executing
Task 2 executing
Task 1 executing
Task 2 executing
Task 1 executing
Task 2 executing
Task 1 executing
Task 2 executing
Task 1 executing
Task 2 executing
综上所述,虽然并发、多进程、并行和多线程都
上一篇:并发作业调度和处理任务分配问题
下一篇:并发、非阻塞、固定大小的列表?