线程安全


01.线程安全是指,执行一段代码,不会产生不确定的结果;反之称为不安全的线程。

  • 非安全线程的示例:
import threading


def worker():
    for x in range(100):
        print("{} is running.".format(threading.current_thread().name))


for x in range(1, 5):
    name = "worker{}".format(x)
    t = threading.Thread(name=name, target=worker)
    t.start()

  • print()函数执行时被线程切换打断了;print()函数分为两步,第一步打印字符串,第二步打印换行。
  • print()函数的线程安全可以通过手动在函数中设置换行符来解决,比如:
    def worker():
      for x in range(100):
          print("{} is running\n.".format(threading.current_thread().name), end='')
  • 使用logging模块代替print()函数可保证线程安全。
文档更新时间: 2021-10-04 00:19   作者:闻骏