Всем доброго времени суток!
Подскажите кто в курсе подробности об асинхронном программировании потоков и сокетов.
Конкретно, как работать с phtread (pthread_create, pthread_exit и т.д.). А также асинхронное
программирование сокетов в Linux (уведомления, события, ожидание и т.д.).
Если можно, то как реализованы в ядре потоки, не через fork(), а именно через pthread_create.
Вопрос по асинхроному программированию (pthread, socket)
Модератор: Модераторы разделов
-
- Сообщения: 6
- ОС: slackware 12.0 / windows xp
-
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: Вопрос по асинхроному программированию
Гм, а в чём вопрос?
-
- Сообщения: 149
- ОС: SuSE Linux
Re: Вопрос по асинхроному программированию
На этом форуме в ветке "программирование" есть Программирование Unix Api.
Так же можно почитать Программирование для Linux. Профессиональный подход
Так же можно почитать Программирование для Linux. Профессиональный подход
-
- Сообщения: 296
- ОС: fedora, mandriva
Re: Вопрос по асинхроному программированию
(__c0d0__) писал(а):Если можно, то как реализованы в ядре потоки, не через fork(),
В материале крутого программиста(Unix Api который) почти ничего нет, может это оттого что он для журнала эти статьи писал.
Где-то было написано что потоки и процессы похожи как две капли воды, и отличаются примерно также, различия в количестве ресурсов выделяемых для того и другого.
По собственному опыту написания небольших программ пришёл к выводу что потоки можно вообще не использовать ввиду того, что это обычные функции и все эти семафоры и прочее прочее прочее чисто для удобства(чтобы в собственной программе не запутаться )
-
- Сообщения: 636
- ОС: Debian GNU/Linux
Re: Вопрос по асинхроному программированию
Это абсолютно разные вещи.
потоки можно вообще не использовать ввиду того, что это обычные функции
нет
и все эти семафоры и прочее прочее прочее чисто для удобства(чтобы в собственной программе не запутаться )
нет
-
- Сообщения: 125
- Статус: Тролль-Лѣсовичокъ
- ОС: Свободная aka ArchLinux
Re: Вопрос по асинхроному программированию
http://www.advancedlinuxprogramming.com/ здесь очень просто, но достаточно подробно описывается создание многопоточных приложений, управление потоками и пр. __c0d0__, Можете скачать, например, только интересующие Вас главы.
Книга доступна под Open Publication License. Serik привёл сылку на перевод этой книги.
Книга доступна под Open Publication License. Serik привёл сылку на перевод этой книги.
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Вопрос по асинхроному программированию
А не ты ли написал windows? Она тоже обычно работает, 99.9%. И раз в месяц(если её юзать 24/7/365) падает. Это не удобство! Это реальное средство, чтоб тебя не посчитали *****(вырезано цензурой).
-
- Сообщения: 296
- ОС: fedora, mandriva
Re: Вопрос по асинхроному программированию
(drBatty) писал(а):А не ты ли написал windows? Она тоже обычно работает, 99.9%.
windows не везде виснет, есть моменты где она не виснет, а я писал про приложения в которых нужна синхронность или асинхронность, по моему мнению лучше не юзать потоки в малых прогах, потому что всё это можно реализовать без них.
(v04bvs) писал(а):Это абсолютно разные вещи.
fork создаёт отдельный процесс, pthread_create создаёт отдельный процесс
для fork выделяется столько же ресурсов, сколько выделено для его родителя
для thread выделяется меньшее количество ресурсов, вроде даже часть ресурсов родителя
У меня инфа такая.
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Вопрос по асинхроному программированию
Folderx писал(а): ↑24.11.2007 00:30(drBatty) писал(а):А не ты ли написал windows? Она тоже обычно работает, 99.9%.
windows не везде виснет, есть моменты где она не виснет, а я писал про приложения в которых нужна синхронность или асинхронность, по моему мнению лучше не юзать потоки в малых прогах, потому что всё это можно реализовать без них.
(грустно)лучше вообще никогда потоки/нити/процессы/семафоры и т.д. не юзать. И уж точно нельзя, когда "можно реализовать без них". Есть моменты, когда приложение начинает глючить, причём из-за кривой реализации многозадачности
-
- Сообщения: 636
- ОС: Debian GNU/Linux
Re: Вопрос по асинхроному программированию
Folderx писал(а): ↑24.11.2007 00:30(v04bvs) писал(а):Это абсолютно разные вещи.
fork создаёт отдельный процесс, pthread_create создаёт отдельный процесс
для fork выделяется столько же ресурсов, сколько выделено для его родителя
для thread выделяется меньшее количество ресурсов, вроде даже часть ресурсов родителя
У меня инфа такая.
Форк создаёт копию вызывающего процесса, копируя все его данные. А pthread_create создаёт новый поток исполнения, при этом все данные остаются общими. Конечно в чём то эти процессы похожи, но модель программирования абсолютно другая.
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Вопрос по асинхроному программированию
Ты учти, раздел называется програмирование для начинающих. Кто нибудь выделит памяти new, и решит, что fork() просто обязана выделить ещё столько же для дочки, да и ещё скопировать содержимое.
-
- Сообщения: 296
- ОС: fedora, mandriva
Re: Вопрос по асинхроному программированию
http://symmetrica.net/uploads/linapi/linapi7.pdf
Вот этот файл где про разницу fork и thread, но там конечно в общих чертах, там говорится что это одно и то же, типа thread частный случай fork только ресурсы по разному выделяются.
Вот этот файл где про разницу fork и thread, но там конечно в общих чертах, там говорится что это одно и то же, типа thread частный случай fork только ресурсы по разному выделяются.
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Вопрос по асинхроному программированию
Вот здесь очень подробно описано, чем процессы отличаются. Автору можно верить, ведь в отзывах я не разу не встретил указаний на ошибки. Всем спорящим прочитать в обязательном порядке! Если для вас это будет совсем непонятно - не используйте fork(). И не пишите о многозадачности, разве что, прямо в Юмор.