在Python中,可以使用threading
模塊來實現多線程數據共享。具體步驟如下:
導入threading
模塊:import threading
定義一個全局變量來共享數據。
創建一個鎖對象:lock = threading.Lock()
。這個鎖對象用來控制對共享數據的訪問。
定義一個線程函數,其中需要對共享數據進行讀寫操作。
在線程函數中使用鎖對象來獲取鎖,進入臨界區。
對共享數據進行讀寫操作。
釋放鎖,退出臨界區。
下面是一個示例代碼:
import threading
# 全局變量
shared_data = []
# 創建鎖對象
lock = threading.Lock()
# 定義線程函數
def thread_func():
global shared_data
for i in range(10):
# 獲取鎖,進入臨界區
lock.acquire()
# 對共享數據進行讀寫操作
shared_data.append(i)
# 釋放鎖,退出臨界區
lock.release()
# 創建線程
thread1 = threading.Thread(target=thread_func)
thread2 = threading.Thread(target=thread_func)
# 啟動線程
thread1.start()
thread2.start()
# 等待線程結束
thread1.join()
thread2.join()
# 打印共享數據
print(shared_data)
在上面的示例中,兩個線程并發地對shared_data
進行寫操作,使用鎖對象來實現對共享數據的互斥訪問。最后打印出的shared_data
列表中應該包含了兩個線程各自寫入的數據。