На правах заметки: цикл статей о многопоточности в C++.
В цикле рассматриваются создание обёртки над pthreads((ссылки по теме:
- POSIX_Threads
-
POSIX Threads Programming
- Краткое описание pthread (threads))), использование boost::thread, а так же использование идиомы RAII|RAII (Захват ресурса есть инициализация) в контексте потоков.
- Multithreaded C++: Part 1: Pthreads
- Multithreaded C++: Part 2: Boost Threads
- Multithreaded C++: Part 3: RAII And Threads
Вообще, блог Empty Crate крайне рекомендую к ознакомлению - интересные заметки по программированию на C++.
Так же в тему многопоточности concurency в C++0x (но всё это можно переложить, с небольшими оговорками и на boost::thread) серия статей в блоге Just Software Solution:
- Multithreading in C++0x part 1: Starting Threads
- Multithreading in C++0x part 2: Starting Threads with Function Objects and Arguments
- Multithreading in C++0x part 3: Starting Threads with Member Functions and Reference Arguments
- Multithreading in C++0x part 4: Protecting Shared Data
- Multithreading in C++0x Part 5: Flexible locking with std::unique_lock<>
- Multithreading in C++0x part 6: Lazy initialization and double-checked locking with atomics
- Multithreading in C++0x part 7: Locking multiple mutexes without deadlock
- Multithreading in C++0x part 8: Futures, Promises and Asynchronous Function Calls