Сейчас на форуме: Rio, asfa, _MBK_, Adler (+8 невидимых)

 eXeL@B —› Вопросы новичков —› потокобезопасный код
Посл.ответ Сообщение

Ранг: 42.2 (посетитель), 42thx
Активность: 0.040
Статус: Участник

Создано: 07 февраля 2013 00:00
· Личное сообщение · #1

Друзья , плиз
Помогите пжлста литературой или иными пособиями о грамотном построении сего кода

Прошу опустить посылы почитать о критсекциях и тому подобном .
Просто хочу спросить , может существует в природе красивое описание о том как построить грамотную архитектуру такого приложения ?

заранее спс




Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 07 февраля 2013 03:08 · Поправил: plutos
· Личное сообщение · #2

красивое описание существует:

"Multithreading Applications in Win32. The CompleteGuide to Threads."
Jim Beveridge & Robert Wiener.

Available in pdf format on Google.

-----
Give me a HANDLE and I will move the Earth.





Ранг: 324.3 (мудрец), 221thx
Активность: 0.480.37
Статус: Участник

Создано: 07 февраля 2013 05:55
· Личное сообщение · #3

Есть на русском языке "Системное программирование", не помню кто автор(2 года не могу съездить и забрать у друга). Там целая глава посвящена объектам многопоточности и синхронизации, рассматриваются несколько схем с мьютексами, объектами "событие", крит. секциями и семафорами.

-----
IZ.RU





Ранг: 158.5 (ветеран), 219thx
Активность: 0.120.01
Статус: Участник

Создано: 07 февраля 2013 06:19 · Поправил: ZaZa
· Личное сообщение · #4

DenCoder
Случайно автор не Джонсон М. Харт?
Если он, то вот книжка (html): --> Джонсон М. Харт. Системное программирование в среде Windows. Третье издание <--

Ссылка на главу про потоки: --> ГЛАВА 7. Потоки и планирование выполнения <--

-----
One death is a tragedy, one million is a statistic.





Ранг: 196.6 (ветеран), 11thx
Активность: 0.070.01
Статус: Участник

Создано: 07 февраля 2013 21:06 · Поправил: [wl]
· Личное сообщение · #5

а по unix-like есть книги про многопоточность? хорошо бы на русском



Ранг: 481.4 (мудрец), 109thx
Активность: 0.180
Статус: Участник
Тот самый :)

Создано: 07 февраля 2013 22:27
· Личное сообщение · #6

Просто про потоки читать - это уже каменный век, про параллелизацию пора читать. А то 21-й век, многопроцессорные тачки, а никто и не чешется на счет распараллеливания выполнения кода.
Гуглите: Intel Tbb, openmp и Parallel Patterns Library (PPL)

-----
Реверсивная инженерия - написание кода идентичного натуральному




Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 08 февраля 2013 00:29
· Личное сообщение · #7

[wl] пишет:
а по unix-like есть книги про многопоточность?


posix pthreads
док уйма




Ранг: 218.9 (наставник), 42thx
Активность: 0.160
Статус: Участник
dotnet

Создано: 08 февраля 2013 00:39 · Поправил: Nimnul
· Личное сообщение · #8

Я не мало написал потокобезопасного кода в своей жизни и могу дать пару советов:

- Самый лучший код, это так называемая не блокирующая архитектура. Т.е. архитектура построена так, что можно обойтись без остановки(блокировки) потоков.

- Если потоки блокируются, было бы не плохо что мы они возвращались в пул потоков, вместо того что бы быть замороженными, и выполняли задачи в другом контексте.

- Если есть много "коротких" блокировок, тогда лучше использовать не блокирующий принцип SpinLock т.е. который вместо блокировки потока использует бесконечный цикл как ловушку для потока. Блокировка и разблокировка может занимать какие то такты, в то время как заморозка потока это куда более ценная операция. В частности про данный принцип можно почитать в MSDN System.Threading.SpinLock

- Так же считается что чем больше кода блокируется, тем хуже для параллельности поскольку все потоки выстроятся в очередь с большей вероятностью.

- Так же посоветую прочитать про принцип не блокирующих чтений и блокирующей записи. System.Threading.ReaderWriterLockSlim

-----
have a nice day





Ранг: 324.3 (мудрец), 221thx
Активность: 0.480.37
Статус: Участник

Создано: 09 февраля 2013 05:03
· Личное сообщение · #9

ZaZa пишет:
Случайно автор не Джонсон М. Харт?

Да, оно. Рекомендую!

[wl] пишет:
а по unix-like есть книги про многопоточность? хорошо бы на русском

в той же книге есть немного, а также в конце табличка функций в Win32 API и их аналогов в никсах

-----
IZ.RU



 eXeL@B —› Вопросы новичков —› потокобезопасный код
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати