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

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

Восстановить пароль Регистрация
 
mhg
2 / 2 / 2
Регистрация: 21.04.2013
Сообщений: 185
30.10.2015, 15:16     Аргументы потоку pthread #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: ");
    }
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2015, 15:16     Аргументы потоку pthread
Посмотрите здесь:

<pthread.h> Где взять. C++
с++ командная строка, Вывести все нечисловые аргументы, но выводит все аргументы чего-то, C++
библиотека pthread.h в Code::Blocks C++
C++ не работает pthread.h в Dev-c++
C++ Pthread взывать поток без параметров
Заставить pthread подождать, до выполнения условия C++
Pthread, поток, передающий значение по указателю C++
Передача функции потоку C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DrOffset
6423 / 3797 / 878
Регистрация: 30.01.2014
Сообщений: 6,585
30.10.2015, 16:10     Аргументы потоку pthread #2
Если
Цитата Сообщение от mhg Посмотреть сообщение
run_new_pthread()
- это функция класса, то передавай в pthread_create последним параметром this.
а состояние аргументов потока (thread_arg) храни как состояние этого класса.
В поточной функции скастишь void * data к типу твоего класса и сможешь работать с thread_arg.
Наверное захочется сделать thread_arg приватным, тогда функцию потока лучше сделать статической в этом же классе. Такая функция через указатель data будет иметь доступ к приватным полям.
Yandex
Объявления
30.10.2015, 16:10     Аргументы потоку pthread
Ответ Создать тему
Опции темы

Текущее время: 08:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru