[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