Страницы

Поиск по вопросам

четверг, 26 декабря 2019 г.

Книги по теме Concurrency и Parallel Programming [закрыт]

#многопоточность #книги #cpp


        
             
                
                    
                        
                            Закрыт. На этот вопрос невозможно дать объективный ответ.
Ответы на него в данный момент не принимаются.
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            Хотите улучшить этот вопрос? Update the question so it
can be answered with facts and citations by editing this post.
                        
                        Закрыт 4 года назад.
                                                                                
           
                
        
Доброго времени суток!
Посоветуйте книги по теме соответственно. Во многообразии выдачи поисковиков можно
потеряться и хочется услышать совета опытных людей, что почитать новичку и разобраться
как можно глубже в теме.
Желательно в порядке нарастания сложности для изучения.
Начал пока с этой C++ Concurrency in Action
P.S. на данный момент есть задача: общая очередь заданий, несколько потоков кладут
их туда, а несколько читают и соответственно выполняют. В общем, вроде укладывается
в паттерн Poducer-Consumer.    


Ответы

Ответ 1



В упомянутой книге упор делается на практический аспект многопоточности. Начинать погружение в тему лучше с неё. На ней же можно и закончить. Для большинства реальных задач этого будет достаточно. Если же хочется познать многопоточность на полную глубину и стать мастером, то без изучения теории не обойтись. Для этого есть другая книга - "Параллельное и распределенное программирование с использованием C++". Описание на ozon.ru совершенно не соответствует содержанию. Оно выглядит легкомысленно и ничуть не пугает. Можно подумать, что эта книга для начинающих. В действительности же она представляет собой академический хардкор, читать который очень непросто. А что касается конкретно паттерна Producer-Consumer, то его реализацию лучше всего делать в lock-free манере. В журнале Dr. Dobb's была статья о том, как это сделать. Правда в вашем случае всё равно потребуется кое-какая блокировка. Нужно будет блокировать отдельно Producer'ов и отдельно Consumer'ов, чтобы в очередь одновременно не лезло более одного потока каждого вида.

Ответ 2



Ну насчет параллельности не знаю, а вот по concurrency есть такой гуру Doug Lea. По ссылке есть его книжки. Видел даже его сайт с исходниками/примерами и проч.

Ответ 3



@Fe1iX, что лучше читать, не знаю. А для задачи, не заморачивайтесь, делайте попроще. Если в *nix, то для разделения доступа используйте pthread_mutex_t (pthread_mutex_lock()/pthread_mutex_unlock() из pthread.h), а для управления очередью sem_t (sem_wait()/sem_post() из semaphore.h).

Комментариев нет:

Отправить комментарий