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