'''
Created on 2013-12-8
@author: Administrator
'''
import threading,time
a=1
alock = threading.Lock()
b=2
block = threading.Lock()
def calc1():
print "calc1 acquiring lock a"
alock.acquire()
time.sleep(5)
print "calc1 got lock a"
print "calc1 acquiring lock b"
block.acquire()
time.sleep(5)
print "calc1 got lock b"
a += 1
b += 1
print "release locks "
block.release()
alock.release()
def calc2():
print "calc2 acquiring lock b"
block.acquire()
time.sleep(5)
print "calc2 got lock b"
print "calc2 acquiring lock a"
alock.acquire()
time.sleep(5)
print "calc2 got lock a"
a += 1
b += 1
print "release locks "
alock.release()
block.release()
t = threading.Thread(target=calc1)
t.setDaemon(1)
t.start()
t = threading.Thread(target=calc2)
t.setDaemon(1)
t.start()
while 1:
time.sleep(300)
Created on 2013-12-8
@author: Administrator
'''
import threading,time
a=1
alock = threading.Lock()
b=2
block = threading.Lock()
def calc1():
print "calc1 acquiring lock a"
alock.acquire()
time.sleep(5)
print "calc1 got lock a"
print "calc1 acquiring lock b"
block.acquire()
time.sleep(5)
print "calc1 got lock b"
a += 1
b += 1
print "release locks "
block.release()
alock.release()
def calc2():
print "calc2 acquiring lock b"
block.acquire()
time.sleep(5)
print "calc2 got lock b"
print "calc2 acquiring lock a"
alock.acquire()
time.sleep(5)
print "calc2 got lock a"
a += 1
b += 1
print "release locks "
alock.release()
block.release()
t = threading.Thread(target=calc1)
t.setDaemon(1)
t.start()
t = threading.Thread(target=calc2)
t.setDaemon(1)
t.start()
while 1:
time.sleep(300)