четверг, 27 марта 2014 г.

Подсказка для работы с консолью:
По умолчанию консоль Windows работает с папкой текущего пользователя системы. Чтобы при каждом запуске консоли не производить смену этой директории, следует для необходимой папки вызвать контекстное меню (предварительно зажав Shift) и выбрать команду "Open command window here".

среда, 26 марта 2014 г.

Parallel keynotes.

Нет блокировкам. Да - future (Py, Java), очередям (Quenue) и, в случае Python-а yield from.

Reactor - конкурентное программирование, цикл, для ОС - один поток. В Stackless и Python 3.4 интегрирован. И такой путь - лучший.

http://www.youtube.com/watch?v=2mfQJaddkNs

Библиотеки:

Gevent
asyncio (бывший tultip)

Работа с потоками и GIL распространённая проблема, отсутствующая в Си, С++ и, может быть, Java.

Так же цитаты хорошего человека:
http://alenacpp.blogspot.ru/2013/11/blog-post.html
Итак, Рихтер рекомендует. (Никаких откровений, впрочем)
Не надо плодить потоки, потому что переключение контекстов - вещь дорогая. Разумно делать столько потоков, сколько в машине есть ядер.
Если уж поток создали, постарайтесь его не блокировать без крайней необходимости. Речь идет не только о мьютексах, но и о Join, Sleep.
 
Не надо играть с thread pool. "Leave the thread pool alone".

Ну а также volatile в C# и в C++ разные. В C# volatile "cannot cache and fence", а в C++ только "cannot cache".