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