注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

~~

~~

 
 
 

日志

 
 

python学习 多线程中对锁的应用  

2013-07-10 09:41:44|  分类: python |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
#多线程中对锁的应用
import threading
l_lock = threading.RLock()
try:
    l_lock.acquire()
    print('do something');
finally:
    l_lock.release();


#py中对多线程的实现是通过thread和threading两个模块;
#thread是比较底层的模块; threading是对thread进行了一下包装,可以更方便的被使用.threading模块主要是对一些线程的操作对象化,创建了叫thread的class。
    
#线程的模式:
    #1.创建线程要执行的函数,把这个函数传递到thread对象里,让它来执行;
    #2.直接从thread中继承,创建新的class,将线程执行的代码放到新的class中;

   如:
    import string, threading, time
 
    def thread_main(a):
    global count, mutex
    # 获得线程名
    threadname = threading.currentThread().getName()
 
    for x in xrange(0, int(a)):
        #取得锁
        mutex.acquire()
        count = count + 1
        #释放锁
        mutex.release()
        print(threadname.x.count);
        time.sleep(1)
 
def main(num):
    global count, mutex
    threads = []
 
    count = 1
    #创建一个锁
    mutex = threading.Lock()
    #先创建线程对象
    for x in xrange(0, num):
        threads.append(threading.Thread(target=thread_main, args=(10,)))
    #启动所有线程
    for t in threads:
        t.start()
    #主线程中等待所有子线程退出
    for t in threads:
        t.join()  
 
 
if __name__ == '__main__':
    num = 4
    #创建4个线程
    main(4)




  评论这张
 
阅读(203)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018