【11】Python3 - 使用thread和threading 实现多线程

python实现多线程

  • python实现多线程的包有thread和threading

thread:

  • 在python3中,被改成了_thread
  • thread的使用,启动多线程的语句如下,有两个参数,一个是需要运行的函数名,一个是需要运行的函数的参数作为元组传入。如果没有参数则也要使用空元组。如果只有一个参数,要注意加逗号。
_thread.start_new_thread(funcname,(parameters))

threading:

  • threading是常用的包。

使用方式1

  • 直接使用threading.Thread生成Thread实例。target是需要以线程方式运行的函数名,args是参数,与上一种方式的参数要求相同。
t = thread.Thread(target=xxx,args=(,))
t.start()  # 开始线程
t.join()  # 等待线程结束

使用方式2

  • 直接继承自threading.Thread
  • 此种使用方式,需要重写run函数!!
# 首先定义一个类,继承自threading.Thread
clss MyThread(threading.Thread):
	# init函数可以不写,如果写的话,要调用父类的构造函数
    def __init__(self, arg):
        super(MyThread, self).__init__()
        self.arg = arg
	
	# 必须重写run函数,run函数是线程启动的时候,真正执行的内容
	def run(self):
		pass

多进程和多线程的相关概念

  • 进程指的是程序运行的一个状态,每个进程有自己独立的运行环境。
  • 线程可以理解为轻量级的进程,是进程的一个独立运行的片段。
  • 一个进程可以有多个线程,并且一个进程的多个线程之间共享数据和上下文运行环境。此时要考虑共享互斥问题。
  • 全局解释器锁GIL:解决互斥
  • 多线程可以提高cpu等资源的利用率。

注:本文是本人根据北京图灵学院的python课程自己整理的笔记哒,转载请注明出处哈~

分享一个有关线程的博客


版权声明:本文为m0_37157128原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。