Python 线程安全,python程序多线程运行

  Python 线程安全,python程序多线程运行

  几个一般函数:

  start():启动线程活动。

  threading.lock(:创建锁定

  获取() :线程锁定

  释放(:解锁

  返回threading.activeCount(:当前进程中的线程数(包括主进程) )

  Threading.enumerate(:返回当前正在运行的线对象的列表

  threading.setDaemon(:如果将参数设置为没错,则线程将被声明为守护程序线程。开始) )必须在方法之前设置。如果不设置为守护程序,它将无限挂起。

  加入) )方法将在子进程运行完成后再运行父进程

  我个人喜欢创建线程类以实现多线程是一个简单的例子,打开两个线程,打印时间,没有锁定

  #-* -编码:utf-8-* -

  导入标题

  导入时间

  类我的线程(线程.线程):

  def __init__(self,threadID,name,counter):

  超级(我是说,自我).__init__())

  self.threadID,self.name,self.counter=threadID,name,counter

  defrun(自身) :

  打印进程开始:自我名称

  self.run_fun(self.name,self.counter,3))。

  打印进程结束: 自我名

  efrun_fun(self,threadName,delay,counter):

  当计数器:

  时间.睡眠(延迟)

  打印% s:% s"%(线程名称,时间。strftime( % y-% m-% d % h:% m:% s ,time.localtime)))

  计数器=1

  thread1=mythread(1, thread-1 ,1))。

  thread2=mythread(2, thread-2 ,2))。

  thread1.start(

  线程开始(

  打印线程。枚举(

  打印主进程结束

  结果表明,线程一和线程2将同时运行

  封锁情况

  #-* -编码:utf-8-* -

  导入标题

  导入时间

  类我的线程(线程.线程):

  def __init__(self,threadID,name,counter):

  超级(我是说,自我).__init__())

  self.threadID,self.name,self.counter=threadID,name,counter

  defrun(自身) :

  打印进程开始:自我名称

  threadlock.acquire(#获取锁

  self.run_fun()

  threadlock.release(#解锁

  打印进程结束: 自我名

  defrun_fun(自己) :

  计数器=3

  当计数器:

  时间。睡眠(自我计数器)

  打印“% s 3360% s”%(自我名称,时间。strftime( % y-% m-% d % h:% m:% s ,time.localtime)))

  计数器=1

  线程锁=线程。锁定(

  thread1=mythread(1, thread-1 ,1))。

  thread2=mythread(2, thread-2 ,2))。

  thread1.start(

  线程开始(

  打印线程。枚举表示正在运行的线程

  打印主进程结束

  结果表明,加锁后,只有线程一运行后,线程2才能运行

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

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