Здравствуйте, DENIVA, Вы писали:
DEN>посоветуйте книгу(и) по многопотоковому программированию. DEN>Желательно чтобы была хорошая теория + хорошее объяснение для Linux с примерами на C,C++
А я упёрся в самом начале книги в утверждение о том, что "операции являются независимыми и могут исполняться параллельно, если их множества записи не пересекаются" (пишу по памяти, могу наглючить).
А что, если одна пишет туда, откуда вторая читает, всё равно могут? (множества записи-то не пересекаются)
Вообщем, не понял, что этим хотел сказать автор и не смог читать дальше, т.к. он постоянно на это утверждение ссылался.
А ещё, вроде, есть книга "Programming with POSIX threads", правда, я её не читал
Re[3]: многопоточное программирование
От:
Аноним
Дата:
14.09.06 09:28
Оценка:
Здравствуйте, Аноним, Вы писали:
А>А что, если одна пишет туда, откуда вторая читает, всё равно могут? (множества записи-то не пересекаются)
да
Re[4]: многопоточное программирование
От:
Аноним
Дата:
14.09.06 10:30
Оценка:
А>>А что, если одна пишет туда, откуда вторая читает, всё равно могут? (множества записи-то не пересекаются) А>да
не, ну я понимаю, что можно выполнять параллельно даже те, которые пишут в одно и то же место — процессор всё стерпит.
Но всё-таки хотелось бы получать предсказуемый результат.
DENIVA wrote:
> посоветуйте книгу(и) по многопотоковому программированию. > Желательно чтобы была хорошая теория + хорошее объяснение для Linux с > примерами на C,C++
No Microsoft product was used in any way to write or send this text.
If you use a Microsoft product to read it, you're doing so at your own risk
Posted via RSDN NNTP Server 2.0
Re[3]: многопоточное программирование
От:
Аноним
Дата:
16.09.06 09:27
Оценка:
А>А я упёрся в самом начале книги в утверждение о том, что "операции являются независимыми и могут исполняться параллельно, если их множества записи не пересекаются" (пишу по памяти, могу наглючить). А>А что, если одна пишет туда, откуда вторая читает, всё равно могут? (множества записи-то не пересекаются)
А>Вообщем, не понял, что этим хотел сказать автор и не смог читать дальше, т.к. он постоянно на это утверждение ссылался.
Во, добрался до книги, не поленюсь набрать, стр. 52:
Основное требование для возможности распараллеливания любой программы состоит в том, что она должна содержать независимые части, как это описано в разделе 1.4. Две части взаимно зависимы, если каждая из них порождает результаты, необходимые для другой; это возможно, только если они считывают и записывают разделяемые переменные. Следовательно, две части программы независимы, если они не выполняют чтение и запись одних и тех же переменных.
С этими общими расссуждениями, если не придираться, в принципе всё нормально. Но автор пошёл дальше:
Более точное определение таково.
(2.1) Независимость параллельных процессов.
Пусть множество чтения части программы — это переменные, которые она считывает, но не изменяет. Пусть множество записи части программы — это переменные, которые она записывает (и, возможно, читает их). Две части программы являются независимыми, если пересечение их множеств записи пусто.
Но это ведь лажа!
Тем более он сам дальше пишет:
Из предшествующего определения следует, что две части программы независимы, если обе они только считывают разделяемые переменные, или каждая часть считывает переменные, отличные от тех, которые другая записывает.
Вот это разумно, но оно не следует из предшествующего определения.
А дальше по книге он опять ссылается на "пересечение множеств записи" ...
Так я её и бросил.
Может у кого есть английский вариант — что он там пишет?
Вообщем, IMHO книгу можно читать только, если уже знать, как оно на самом деле.
Имхо лажа
После прочтения сложно будет начинать решать реальные задачи. Лучше книжку, написанную практиком, с конкретными задачами и примерами на С++.
Во-первых, писал теоретик.
Во-вторых, окцент на scientific computations.
Лучше начинать решать практические задачи прочитав эту книгу, чем не читая ее.
R>Лучше книжку, написанную практиком, с конкретными задачами и примерами на С++.
Здравствуйте, remark, Вы писали:
A>>>>Грегори . Основы многопоточного, параллельного и распределенного программирования
A>>>>Мне понравилась.
R>>>После прочтения сложно будет начинать решать реальные задачи.
A>>Лучше начинать решать практические задачи прочитав эту книгу, чем не читая ее.
R>Лучше начинать решать практические задачи прочитав другую книгу
Ну так покажи какую.
В свое время я занимался поисками книги, которая могла бы упорядочить имеющиеся у меня практические навыки о многопоточном программировании. Это единственная книга, которую я смог найти.
Здравствуйте, Aera, Вы писали:
A>Здравствуйте, remark, Вы писали:
A>>>>>Грегори . Основы многопоточного, параллельного и распределенного программирования
A>>>>>Мне понравилась.
R>>>>После прочтения сложно будет начинать решать реальные задачи.
A>>>Лучше начинать решать практические задачи прочитав эту книгу, чем не читая ее.
R>>Лучше начинать решать практические задачи прочитав другую книгу
A>Ну так покажи какую.
A>В свое время я занимался поисками книги, которая могла бы упорядочить имеющиеся у меня практические навыки о многопоточном программировании. Это единственная книга, которую я смог найти.
Не знаю. Я такую книгу не искал. Я изучал по статьям, форумам, референсам по API.
Здравствуйте, DENIVA, Вы писали:
DEN>посоветуйте книгу(и) по многопотоковому программированию. DEN>Желательно чтобы была хорошая теория + хорошее объяснение для Linux с примерами на C,C++
Странно, почему ни кто не вспомнил книгу Камерон Хьюз и Трейси Хьюз "Паралельное и распределенное программирование с ипользованием С++". В своем роде уникальная книжка, по крайней мере, чего либо подобного на русском языке я не видел еще. Написана практиками, а не теоретиками. Авторы занимают должности инженеров-программистов в компании CTEST Laboratories. Весьма рекомендую. В России издана Издательским домом "Вильямс". Ознакомиться можно,апример, здесь -> http://www.ozon.ru/context/detail/id/1919696/