Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
mhg
2 / 2 / 2
Регистрация: 21.04.2013
Сообщений: 192
#1

Аргументы потоку pthread - C++

30.10.2015, 15:16. Просмотров 161. Ответов 1
Метки нет (Все метки)

Добрый день,

нужен совет как лучше написать запуск потоков

структура для передачи в поток
C++
1
2
3
4
5
struct thread_arg
{
   CTCPServer* pServer;
   int sock_desc;
};
C++
1
2
3
4
void start()
{
run_new_pthread();
}
здесь получается, что объект thr_arg и pthread_t thread разрушаются, поле запуска потока.
Как их лучше сохранить? отдельно в контейнере?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void run_new_pthread()
{
    thread_arg thr_arg;
    thr_arg.pServer = this;
    thr_arg.sock_desc = __accept();
 
    pthread_t thread;
    int result = pthread_create(&thread, NULL,  pthr_func, (void*)&thr_arg);
    if (result != 0) {
        perror("Creating the thread: ");
    }
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2015, 15:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Аргументы потоку pthread (C++):

Pthread - C++
при компиляции код работает и все выводит и выполняет алгоритм но стоит запустить с командной строки, выдает ошибку "Запуск программы...

не работает pthread.h в Dev-c++ - C++
не понимаю что не так. у меня винда. Программу пишу на Dev-cpp: вот код: #include<stdio.h> #include<pthread.h> class CData {...

<pthread.h> Где взять. - C++
Где ее взять.. скиньте пожалуйста ?или где взять подскажите...?гугл помог ну плохо...что то скачал ну не знаю что куда подключить.

Аргументы функции: что значит "большие" и "небольшие" аргументы? - C++
Здравствуйте! Всем доброго дня! Растолкуйте пожалуйста! Что значит большие и небольшие?

библиотека pthread.h в Code::Blocks - C++
не могу найти как подключить библиотеку pthread.h в Code::Blocks. Помогите,пожалуйста, кто знает.

Заставить pthread подождать, до выполнения условия - C++
есть поток типы pthread. Нужно заставить его подождать, до выполнения условия

1
DrOffset
7312 / 4412 / 999
Регистрация: 30.01.2014
Сообщений: 7,245
30.10.2015, 16:10 #2
Если
Цитата Сообщение от mhg Посмотреть сообщение
run_new_pthread()
- это функция класса, то передавай в pthread_create последним параметром this.
а состояние аргументов потока (thread_arg) храни как состояние этого класса.
В поточной функции скастишь void * data к типу твоего класса и сможешь работать с thread_arg.
Наверное захочется сделать thread_arg приватным, тогда функцию потока лучше сделать статической в этом же классе. Такая функция через указатель data будет иметь доступ к приватным полям.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2015, 16:10
Привет! Вот еще темы с ответами:

Pthread функция потока внутри класса - C++
Нужно чтобы функция pthread_create принимала на входе функцию-член класса, в котором я вызываю pthread_create собственно. Так сделать не...

Pthread взывать поток без параметров - C++
void RunClient(){ int iret; const char *message = &quot;Thread Run_Client()&quot;; if (!Running){ try{ _Running = true; ...

Pthread, поток, передающий значение по указателю - C++
Создаётся поток, передающий значение по указателю: pthread_create (&amp;pthread_id1, NULL, my_thread,(void *)arr); pthread_create...

Присоединение к потоку - C++
Присоединение к потоку - это приостановка потока выше на один уровень иерархии до конца работы другого? Т.е. когда мы вызываем t.join() в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru