Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.RU > Кроссплатформенный C/C++: cl/gcc/Qt/Gtk+/WxWidgets > Потоки |
Автор: Garret 10.08.07, 11:13 |
Подскажите плиз где и что можно почитать про многопоточность в никсах? Знания темы имеются, хотелось бы как раз про реализацию. Заранее спасибо. |
Автор: gruy 10.08.07, 11:58 |
Ищи информацию по pthreads. |
Автор: Flex Ferrum 10.08.07, 14:05 |
Garret, а что конкретно тебя интересует? |
Автор: dnk 10.08.07, 14:09 |
реализация на уровне ядра(тогда называй конкретную версию ядра)? готовая либа? |
Автор: Garret 10.08.07, 18:08 |
Эх, с моими знаниями на уровне ядра Либа конечно, должна же быть такая? Интересует статья где будет написано "Юзаете готовый класс CSuperThreads, запускаете поток myThhred.start()" и что то про синхронизацию, если там что то особенное. Хотелось бы основные сведенья и простейшую реализацию с примерами. |
Автор: Flex Ferrum 10.08.07, 20:36 |
Тогда посмотри здесь: boost::threads. Вообщем то, примерно то, что тебе надо. |
Автор: mo3r 11.08.07, 06:25 |
Можно почитать книжку Advanced Linux Programming, там есть глава про потоки. |
Автор: Garret 11.08.07, 06:59 |
Буст кроссплатформенная библиотека? Спасибо Спасибо, не мог найти нормальной книги |
Автор: mo3r 11.08.07, 08:51 |
Только там в одном место говорится о том, как потоки реализованы, это читать не надо, там информация устаревшая |
Автор: Garret 11.08.07, 09:30 |
Попробовал с Линуховым pthreads, вот самый простой код: <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> #include <stdio.h> #include <pthread.h> void* print_xs(void* unused) { while (1) fputc('x', stderr); return NULL; } int main() { pthread_t thread_id; pthread_create(&thread_id, NULL, &print_xs, NULL); while (1) fputc('o', stderr); return 0; } Вылетает ошибка "undefined reference to 'pthread_create'". WTF? |
Автор: Flex Ferrum 11.08.07, 09:44 |
При компиляции/линковке надо указать ключик -lmt (если я не ошибаюсь). В man'е должно быть написано. |
Автор: gruy 11.08.07, 10:25 |
Нет, нужен ключ -lpthread |