Apr. 11th, 2013
аяяй concurrency
Apr. 11th, 2013 03:25 pmчитаю книгу про Акку; там во введении пугают технологическими проблемами; или я чего-то недопонимаю, но, по-моему, иерархия операций и управление приоритетами процессов вполне могут решить эти проблемы, настолько, что а) и задумываться не надо, и б) можно даже доказать довольно убедительно, через леммы и т.п.
Что я, собственно, и делал - мы буровой управляли, у нас никаких дедлоков не было. В армии нет дедлоков, т.к. когда майор обращается к лейтенанту, то лейтенант не обращается одновременно к майору с встречным предложением. Автор там удивляется, что чёета мы сами делаем сто дел параллельно (идём и жуём жувачку, а можем прерваться и поговорить) - так у нас же есть приоритеты. Как один умный человек написал сегодня - лени нет, есть приоритеты.
Ну ладно.
"
Most successful applications that employ shared-state concurrency grow in a manner that resembles something like:
• Create some object that carries some data.
• Create some functions to operate on that data.
• Realize it’s slow. Create threads (or an ExecutorService) and refac- tor your code so it can run concurrently.
• Find out that you have a ton of race conditions. Protect the data with synchronization primitives.
• Scratch your head about why only 10% of your cores are being uti- lized. Eventually you blame the synchronization. Refactor again to try and increase concurrency. And so on. . .
"
Что я, собственно, и делал - мы буровой управляли, у нас никаких дедлоков не было. В армии нет дедлоков, т.к. когда майор обращается к лейтенанту, то лейтенант не обращается одновременно к майору с встречным предложением. Автор там удивляется, что чёета мы сами делаем сто дел параллельно (идём и жуём жувачку, а можем прерваться и поговорить) - так у нас же есть приоритеты. Как один умный человек написал сегодня - лени нет, есть приоритеты.
Ну ладно.
"
Most successful applications that employ shared-state concurrency grow in a manner that resembles something like:
• Create some object that carries some data.
• Create some functions to operate on that data.
• Realize it’s slow. Create threads (or an ExecutorService) and refac- tor your code so it can run concurrently.
• Find out that you have a ton of race conditions. Protect the data with synchronization primitives.
• Scratch your head about why only 10% of your cores are being uti- lized. Eventually you blame the synchronization. Refactor again to try and increase concurrency. And so on. . .
"