Rumah > Soal Jawab > teks badan
在python的多线程中,使用threading中的lock rlock锁, 为何rlock可以调用多次acquire,lock缺不能,lock调用多次而且会发生死锁,rlock不会,求大神指点下
黄舟2017-04-18 10:33:29
rlock ialah kunci masuk semula Anda hanya boleh memahami bahawa ia disertakan dengan pembilang mempunyai pembilang +1, dan keluaran mempunyai pembilang nilai negatif tidak dibenarkan, jika tidak, pengecualian akan berlaku .
Mengapa anda melakukan ini? Kerana senario aplikasi berbeza, kunci masuk semula boleh memanggil kaedah lain yang memerlukan kunci, tetapi kunci bukan masuk semula tidak boleh melakukan ini.
def fun1():
rlock.acquire()
fun2()
rlock.release()
def fun2():
rlock.acquire()
rlock.release()
PHPz2017-04-18 10:33:29
Perbezaan antara kunci dan rlock ialah r:
reentrant, yang boleh dimasukkan berulang kali Sesuatu thread boleh memperoleh rlock yang sama beberapa kali tanpa disekat Jika thread memperoleh rlock beberapa kali, ia mesti mengeluarkan nombor yang sama kali. Barulah rlock ini boleh dikeluarkan.
Kunci adalah berbeza Ia hanya boleh diperoleh sekali dan tidak boleh diperoleh semula sebelum ia dikeluarkan.
Untuk maklumat lanjut, sila rujuk jawapan ini:
http://stackoverflow.com/ques...