首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

请教python的多线程的锁必须声明在主线程中吗

2013-11-01 
请问python的多线程的锁必须声明在主线程中吗?本帖最后由 rav009 于 2013-10-31 19:05:10 编辑如果我在子

请问python的多线程的锁必须声明在主线程中吗?
本帖最后由 rav009 于 2013-10-31 19:05:10 编辑 如果我在子线程的类中声明一个锁并加锁,请问这是有用的吗?
比如:


import threading
class mythread(threading.Thread):
    def __init__(self):
        super(mythread,self).__init__()
        self.l=threading.Lock()

    def run(self):
        self.l.acquire() #这个锁能锁其他线程吗?



这个锁能有效果吗?我印象当中是没用的
谢谢指导 python 多线程
[解决办法]
在其他线程肯定有效果的,便是锁存在的意义...
[解决办法]
lock要起作用需要其他thread合作。多个thread要读写同一个变量,它们要主动acquire同一个lock,才有用。每人建一个自己的lock,就没用。

所以你可以在一个thread中建一个lock,但你要有办法把这个lock和别的thread共享,并且其他thread也要主动用这个lock。

热点排行