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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。