Path: csiph.com!usenet.pasdenom.info!weretis.net!feeder4.news.weretis.net!nuzba.szn.dk!pnx.dk!fu-berlin.de!uni-berlin.de!not-for-mail From: jt@toerring.de (Jens Thoms Toerring) Newsgroups: comp.lang.python Subject: Re: Writing to same file from two threads Date: 27 Feb 2013 16:05:09 GMT Organization: Freie Universitaet Berlin Lines: 32 Message-ID: References: <7xliabvv4g.fsf@ruckus.brouhaha.com> X-Trace: news.uni-berlin.de 6u1AtEw6vVqZDXfw05eGIgfXro7tGj5FXkKzN4Rtwirxhw+wxitnzLClwm18Xf X-Orig-Path: not-for-mail User-Agent: tin/1.9.3-20080506 ("Dalintober") (UNIX) (Linux/2.6.30-1-amd64 (x86_64)) Xref: csiph.com comp.lang.python:40068 Antoine Pitrou wrote: > Jens Thoms Toerring toerring.de> writes: > > > > Paul Rubin nospam.invalid> wrote: > > > jt toerring.de (Jens Thoms Toerring) writes: > > > > in garbled output (i.e. having some output from A inside a > > > > line written by B or vice versae) because the "main thread" or > > > > > Yes they do get garbled like that. Preferred Python style is put a > > > single thread in charge of all the i/o to that file, and communicate > > > with it by message passing through Queue objects. That is safer than > > > directly using locks. > > > > Thank you for confirmig my suspicion But you have induced > > another question: why is using a Queue safer than locking (not > > that I doubt that it might be more elegant etc.). Is it "safer" > > because it's less likely that one gets it wrong (e.g. by for- > > grtting to acquire the lock) or is there something inherently > > unsafe about locks? > For the record, binary files are thread-safe in Python 3, but text files > are not. > Locks are safe if you use them well. As you point out, if you forget > to acquire your lock, or if you devise a situation where there is a > deadlock between competing locks, you can have difficult to diagnose > issues. Queues have their internal locking all done for you. Thank you for your kind answers! Best regards, Jens -- \ Jens Thoms Toerring ___ jt@toerring.de \__________________________ http://toerring.de