54. python高级------多任务编程之线程的注意点

文章目录

  • 54. python高级------多任务编程之线程的注意点
      • python修炼第十九天
      • 2019年 4月9日 雨
        • 1.线程之间执行是无序的
        • 2.主线程会等待所有的子线程执行结束再结束
        • 3.线程之间共享全局变量

54. python高级------多任务编程之线程的注意点

python修炼第十九天

2019年 4月9日 雨

1.线程之间执行是无序的

import threading
import time


def dance():
	while True:
		print("跳舞")
		time.sleep(0.1)


def sing():
	while True:
		print("唱歌")
		time.sleep(0.1)


def main():
	threading.Thread(target=dance).start()
	threading.Thread(target=sing).start()


if __name__ == '__main__':
	main()

C:\Python\Python36\python.exe "D:/studing学习/多线程使用.py"
跳舞
唱歌
唱歌
跳舞
跳舞
唱歌
唱歌
跳舞
  • 线程之间执行是无序的,由cpu调度哪个线程, 哪个线程就先执行,没有调度的线程不能执行

2.主线程会等待所有的子线程执行结束再结束

可以设置守护主线程

  • 守护主线程:主线程退出子线程销毁不再执行
    - 1.threading.Thread(target = show_info , daemon = True)
    - 2.线程对象 : setDaemon(True)

3.线程之间共享全局变量

import threading
import time

i = 0


def write():
	"""执行跳舞"""
	global i
	while True:
		# print("跳舞")
		time.sleep(1)
		i += 1


def read():
	"""执行唱歌"""
	while True:
		# print("唱歌")
		time.sleep(1)
		print(i)


def main():
	threading.Thread(target=write).start()
	threading.Thread(target=read).start()


if __name__ == '__main__':
	main()

你可能感兴趣的:(python高级)