小编use*_*293的帖子

使用python线程锁和circulair导入时出现意外行为

我用线程锁编写了一个简单的测试程序.此程序的行为不符合预期,python解释器不会抱怨.

test1.py:

from __future__ import with_statement
from threading import Thread, RLock
import time
import test2

lock = RLock()

class Test1(object):
    def __init__(self):
        print("Start Test1")
        self.test2 = test2.Test2()
        self.__Thread = Thread(target=self.myThread, name="thread")
        self.__Thread.daemon = True
        self.__Thread.start()
        self.test1Method()

    def test1Method(self):
        print("start test1Method")
        with lock:
            print("entered test1Method")
            time.sleep(5)
            print("end test1Method")

    def myThread(self):
        self.test2.test2Method()

if __name__ == "__main__":
    client = Test1()
    raw_input()
Run Code Online (Sandbox Code Playgroud)

test2.py:

from __future__ import with_statement
import time
import test1

lock = test1.lock

class Test2(object):
    def __init__(self):
        print("Start Test2")

    def test2Method(self):
        print("start test2Method") …
Run Code Online (Sandbox Code Playgroud)

python multithreading locking

5
推荐指数
1
解决办法
154
查看次数

标签 统计

locking ×1

multithreading ×1

python ×1