The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Как правильно вызвать функцию pthread_create()?"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Как правильно вызвать функцию pthread_create()?"
Сообщение от vovan emailИскать по авторуВ закладки on 05-Дек-02, 10:16  (MSK)
А именно какой формат должный иметь 3-й и 4-й аргументы этой функции?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "RE: Как правильно вызвать функцию pthread_create()?"
Сообщение от Hurricane emailИскать по авторуВ закладки on 05-Дек-02, 16:24  (MSK)
>А именно какой формат должный иметь 3-й и 4-й аргументы этой функции?
>

ЭЭххх ! Привет ! %)) Наконец то я опять тут :))
Нуждающемуся в потоках посоветовать бы книжку, но это банальность. А pthread_create
это по идее просто.

Как известно потоковая функция имеет вид ``void *foo(void *parameter)'' (это так между делом :)
pthread_create принимает первый аргумент - указатель на идентификатор потока
``pthread_t'', 2 - атрибуты этого потока, если таких нет, то просто передайте NULL,
все атрибуды будут по default ;) ``pthread_attr_t'', третий аргумент - это указатель на потоковую функцию (смотри "между делом"), и наконец 4 аргумент это указатель void * на что либо, передаваемое этой функции как даные.
Самый простой вызов этой функции выглядит так:

#include <pthread.h>

void *
foo(p)
void *p;
{ }

int
main()
{
pthread_t ident;
pthread_create(&ident, NULL, &foo, NULL);
pthread_join(ident, NULL);
return (0);
}

Сори если где ошибся, спрашивай, если где не понятно :) Ман читай и т.п.
Сори за то что так много написал не по делу, просто радостный я после чая чего - то :))

mailto: snail@ilyichevsk.net

Best regards,
Vladislav Lazarenko

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "RE: Как правильно вызвать функцию pthread_create()?"
Сообщение от XMan Искать по авторуВ закладки on 05-Дек-02, 19:54  (MSK)
Ну ты в маны вообще смотришь хоть иногда ? Там же четко я ясно написано:

int pthread_create(pthread_t * thread, pthread_attr_t * attr, void * (*start_routine)(void *), void * arg);

...
The new thread applies the function start_routine passing it arg as first argument.
...

Вобщем, start_routine - это есть функция вида:
void * func(void * arg);

А указатель на что ты будешь передавать в качестве 4-го параметра зависит от того, как функция будет рассматривать свой аргумент arg.

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру