并发和并行是计算机科学中经常被提及的两个概念,它们都与多任务处理有关,但含义有所不同。
并发是指系统中有多个任务在宏观上看起来是同时执行的,但实际上这些任务可能在微观上交替执行。并发强调的是任务的管理和调度,而不是真正的同时执行。在单核处理器上,通过时间片轮转等方式可以实现并发。
并行是指系统中有多个任务在绝对意义上同时执行。这通常需要多核处理器或多处理器系统来实现。在并行中,多个任务在不同的处理器核心上同时运行。
以下是一个简单的示例,展示如何在Python中实现并发和并行。
使用Python的threading模块来实现并发。
import threading
def print_numbers():
for i in range(5):
print(i)
def print_letters():
for letter in 'ABCDE':
print(letter)
# 创建线程
thread1 = threading.Thread(target=print_numbers)
thread2 = threading.Thread(target=print_letters)
# 启动线程
thread1.start()
thread2.start()
# 等待线程完成
thread1.join()
thread2.join()
使用Python的multiprocessing模块来实现并行。
from multiprocessing import Process
def print_numbers():
for i in range(5):
print(i)
def print_letters():
for letter in 'ABCDE':
print(letter)
# 创建进程
process1 = Process(target=print_numbers)
process2 = Process(target=print_letters)
# 启动进程
process1.start()
process2.start()
# 等待进程完成
process1.join()
process2.join()