问题
In the documentation of the threading module it says:
All of the objects provided by this module that have
acquire()
andrelease()
methods can be used as context managers for a with statement. Theacquire()
method will be called when the block is entered, andrelease()
will be called when the block is exited.
I was wondering if it is called in blocking or non-blocking mode?
回答1:
From looking at the CPython source, it appears that it's called with default arguments, which means in blocking mode.
The methods you want to look at in particular are __enter__(), which is called at the beginning of the with
block, and __exit__(), which is called at the end.
来源:https://stackoverflow.com/questions/13290429/using-threading-lock-as-context-manager