要实现变量内的数据并发,可以使用线程或进程进行并发处理。下面是使用Python的多线程和多进程进行并发的代码示例:
import threading
# 共享变量
shared_variable = 0
# 线程函数
def thread_func():
global shared_variable
for _ in range(100000):
# 加锁
with threading.Lock():
shared_variable += 1
# 创建线程
threads = []
for _ in range(10):
t = threading.Thread(target=thread_func)
threads.append(t)
t.start()
# 等待所有线程结束
for t in threads:
t.join()
print(shared_variable) # 输出结果为1000000
import multiprocessing
# 共享变量
shared_variable = multiprocessing.Value('i', 0)
# 进程函数
def process_func(shared_var):
for _ in range(100000):
# 加锁
with shared_var.get_lock():
shared_var.value += 1
# 创建进程
processes = []
for _ in range(10):
p = multiprocessing.Process(target=process_func, args=(shared_variable,))
processes.append(p)
p.start()
# 等待所有进程结束
for p in processes:
p.join()
print(shared_variable.value) # 输出结果为1000000
无论是使用多线程还是多进程,都需要注意对共享变量的访问进行加锁,以避免出现数据竞争和不一致的情况。