![]() |
eXeL@B —› Вопросы новичков —› потокобезопасный код |
Посл.ответ | Сообщение |
|
Создано: 07 февраля 2013 00:00 · Личное сообщение · #1 |
|
Создано: 07 февраля 2013 03:08 · Поправил: plutos · Личное сообщение · #2 |
|
Создано: 07 февраля 2013 05:55 · Личное сообщение · #3 |
|
Создано: 07 февраля 2013 06:19 · Поправил: ZaZa · Личное сообщение · #4 DenCoder Случайно автор не Джонсон М. Харт? Если он, то вот книжка (html): Ссылка на главу про потоки: ----- One death is a tragedy, one million is a statistic. ![]() |
|
Создано: 07 февраля 2013 21:06 · Поправил: [wl] · Личное сообщение · #5 |
|
Создано: 07 февраля 2013 22:27 · Личное сообщение · #6 Просто про потоки читать - это уже каменный век, про параллелизацию пора читать. А то 21-й век, многопроцессорные тачки, а никто и не чешется на счет распараллеливания выполнения кода. Гуглите: Intel Tbb, openmp и Parallel Patterns Library (PPL) ----- Реверсивная инженерия - написание кода идентичного натуральному ![]() |
|
Создано: 08 февраля 2013 00:29 · Личное сообщение · #7 |
|
Создано: 08 февраля 2013 00:39 · Поправил: Nimnul · Личное сообщение · #8 Я не мало написал потокобезопасного кода в своей жизни и могу дать пару советов: - Самый лучший код, это так называемая не блокирующая архитектура. Т.е. архитектура построена так, что можно обойтись без остановки(блокировки) потоков. - Если потоки блокируются, было бы не плохо что мы они возвращались в пул потоков, вместо того что бы быть замороженными, и выполняли задачи в другом контексте. - Если есть много "коротких" блокировок, тогда лучше использовать не блокирующий принцип SpinLock т.е. который вместо блокировки потока использует бесконечный цикл как ловушку для потока. Блокировка и разблокировка может занимать какие то такты, в то время как заморозка потока это куда более ценная операция. В частности про данный принцип можно почитать в MSDN System.Threading.SpinLock - Так же считается что чем больше кода блокируется, тем хуже для параллельности поскольку все потоки выстроятся в очередь с большей вероятностью. - Так же посоветую прочитать про принцип не блокирующих чтений и блокирующей записи. System.Threading.ReaderWriterLockSlim ----- have a nice day ![]() |
|
Создано: 09 февраля 2013 05:03 · Личное сообщение · #9 |
![]() |
eXeL@B —› Вопросы новичков —› потокобезопасный код |