[python] Lock
Petr Messner
petr.messner na gmail.com
Úterý Únor 10 14:45:31 CET 2015
Už to asi vidím, každý klient má své vlákno (leda že by se samotný klient
používal vícevláknově). Příště si dám větší pauzu před odesláním :)
PM
Dne 10. února 2015 14:39 Petr Messner <petr.messner na gmail.com> napsal(a):
> Jak jsou jednotlivé zprávy od sebe odděleny? Vidím tam v klientovi
>
>
> def communicate(self, data):
> self._socket.send('%s %s' % (self.name, data))
> self._socket.recv(self.buffer_size)
>
>
> A server to čte takto:
>
> while True:
> data = self._socket.recv(self.buffer_size)
>
> if data in ('', '\n', '\r\n'):
> return
>
> try:
> who, op, name = data.split()
> except ValueError:
> raise ValueError('Invalid data')
>
>
> Co když se zprávy pošlou náhodou tak, že self._socket.recv(self.
> buffer_size) přijme dvě zprávy najednou? To mu pak přijde něco jako "client1
> mklock lock1client2 mklock lock2" a nebude to fungovat - server spadne.
>
> PM
>
>
> Dne 10. února 2015 14:15 Pavel S <pavel na schon.cz> napsal(a):
>
> Jeste existuje tzv. DLM (Distributed Lock Manager). Zjednodusene receno,
>> je to mutex, ktery je pristupny po siti.
>>
>> Jeden takovy jednoduchy distributed lock manager jsem napsal v pythonu a
>> umistil na activestate zde:
>> http://code.activestate.com/recipes/578194-distributed-lock-manager-for-python/
>> _______________________________________________
>> Python mailing list
>> python na py.cz
>> http://www.py.cz/mailman/listinfo/python
>>
>> Visit: http://www.py.cz
>>
>
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://www.py.cz/pipermail/python/attachments/20150210/de021227/attachment.html>
Další informace o konferenci Python