Noob thread lock question

John Nagle nagle at animats.com
Wed Dec 2 16:05:48 EST 2009


Diez B. Roggisch wrote:
> Astley Le Jasper schrieb:
>> I have a number of threads that write to a database. I have created a
>> thread lock, but my question is this:
>>
>> - If one thread hits a lock, do a) all the other threads stop, or b)
>> just the ones that come to the same lock?
> 
> Only the ones coming the the same lock.
> 
>> - I presume that the answer is b. In which case do the threads stop
>> only if they come to the same instance of a lock. For example, you
>> could have a lock instance for one database and another instance for
>> another database (first_db_thread_lock = threading.RLock() ....
>> second_db_thread_lock = threading.RLock()).
> 
> 
> There is nothing like "not an instance of a lock". So it's essentially 
> the same question as the first, and thus the answer is also: yes, only 
> for the *same* lock, which is an instance.
> 
> Diez

    Note that if you're using MySQLdb, there are some restrictions on threading.
Only one thread at a time can use each connection to the database.  But you
can create multiple connections to the same database at the same time from
a single program, and run them concurrently.

					John Nagle



More information about the Python-list mailing list