python多线程详解,python多线程的实现

  python多线程详解,python多线程的实现

  本文主要介绍Python多线程的使用细节。线程间的执行是乱序的,cpu会执行哪个线程。以下相关介绍可以参考。

  00-1010一、实用方法二。补充:Python多线程共享变量资源竞争

  

目录

  1.线程间的执行是乱序的,cpu会执行哪个线程被调度;2.主线程在结束前等待所有子线程结束。设置守护线程可以实现主线程结束时子线程立即结束;3.设置守护线程:1。Threading.thread (daemon=true),2。线程对象。setdaemon(true);4.线程共享全局变量,导致资源竞争。

  线程之间的执行是乱序的,cpu调度哪个线程就执行哪个线程。

  主线程将在结束前等待所有子线程完成。设置守护线程可以实现主线程结束时子线程会立即结束。

  设置守护进程:1.threading.thread (daemon=true),2.thread object.setdaemon (true)

  线程共享全局变量,导致资源竞争。

  #导入模块(模块名。py,包名init.py)

  导入线程

  导入时间

  定义任务1(计数):

  #获取当前线程对象

  # t=threading.current _线程()

  # print(任务1 _名称: ,t.name)

  打印()

  对于范围内的I(计数):

  打印(“任务A”,i 1)

  时间.睡眠(0.5)

  定义任务2(内容,计数):

  print(Task2_name: ,threading.current_thread()。姓名)

  对于范围内的I(计数):

  打印(f { content } _ _任务B ,i 1)

  时间.睡眠(0.5)

  if __name__==__main__:

  t1=线程。线程(target=task1,name=T1 ,daemon=True,args=(5,)。

  t2=线程。线程(target=task2,name=T2 ,kwargs={content: 是, count:5})

  #设置第二种方式来保护主线程

  # t1.setDaemon(True)

  t2.setDaemon(True)

  t1.start()

  T1.join() #阻塞该函数,只有在T1执行后它才会被向下执行。

  t2.start()

  # t2.join()

  打印(“主线程结束”)

  

一,实用方法

  执行1.资源竞争问题:和=1时,会大致分为三步(取值、加1、回写),cpu可能刚执行两步就切换到另一个线程执行;1.2.解决办法:()方法用于设置线程同步(低效),2 .锁(它可以保证同一时间只有一个线程在执行)。

  资源竞争:sum=1执行时,会大致分为三步(取值、加1、写回),cpu可能刚两步就切换到另一个线程执行。

  解决方法:1。用join()方法设置线程同步(低效),2。锁(它可以保证同一时间只有一个线程在执行)

  导入线程

  导入时间

  总和=0

  锁=线程。锁定()

  def add_num1():

  全局总和

  对于I,范围为(1000000):

  # lock.acquire() # lock

  总和=1

  # lock.release() # unlock

  print(f“{ threading . current _ thread()。name}计算结果为{sum} )

  def add_num2():

  全局总和

  对于I,范围为(1000000):

  # lock.acquire()

  总和=1

  # lock.release()

  print(f“{ threading . current _ thread()。name}计算结果为{sum} )

  if __name__==__main__:

  t1=线程。线程(target=add_num1)

  t2=线程。线程(target=add_num2)

  t1.start()

  #设置阻塞功能,设置线程同步

  t1.join()

  t2.start()

  打印(f main的总和值为{sum} )

  这就是本文关于Python多线程的全部细节。关于Python多线程的更多信息,请搜索热门IT软件开发工作室之前的文章或者继续浏览下面的相关文章。希望你以后能支持热门的IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: