- 共享变量指多个线程同时对同一个变量进行读写操作,并且这些操作都能够影响到其他线程。
- 在进行多线程编程时,使用共享变量,需要对共享变量进行合理的管理和控制,避免多线程竞态条件的出现。
# 该示例一个线程修改共享变量,一个线程读取,当存在多线程写入时,需要考虑变量安全,防止出现意外情况。
import _thread
import utime
lock = _thread.allocate_lock()
count = 1
# 线程 B 函数入口,共享变量 count 累增。
def thread_entry_B(id):
global count
while True:
count += 1
utime.sleep(1)
# 线程 A 函数入口,共享变量 count 读取打印。
def thread_entry_A(id):
global count
while True:
print('thread {} current count is {}.'.format(id, count))
utime.sleep(5)
# 创建线程
_thread.start_new_thread(thread_entry_A, ('A',))
_thread.start_new_thread(thread_entry_B, ('B',))