python锁如何知道要锁定哪个资源或对象? (理论值)

时间:2015-02-02 19:18:10

标签: python multithreading thread-safety locking

只是为了清楚我没有具体的例子因为使用方式 各种“如何”建议实现适合我的需要,直到现在,我没有遇到任何关于锁的问题,但在python中使用锁确实提出了以下问题

似乎调用lock.acquire()不需要指定要锁定的资源,这让我想知道python锁如何知道要锁定哪个对象或资源?

import time import thread


def myfunction(string,sleeptime,lock,*args):
    while 1:    #entering critical section
        lock.acquire() 
        print string," Now Sleeping after Lock acquired for ",sleeptime
        time.sleep(sleeptime) 
        print string," Now releasing lock and then sleeping again"
        lock.release()  #exiting critical section
        time.sleep(sleeptime) # why?


lock=thread.allocate_lock()
thread.start_new_thread(myfunction,("Thread No:1",2,lock))
thread.start_new_thread(myfunction,("Thread No:2",2,lock))

1 个答案:

答案 0 :(得分:0)

它的合作锁定。锁仅适用于资源,程序中的所有代码都同意在使用资源之前获取锁。

相关问题