Russian Qt Forum
Апрель 20, 2024, 02:09 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: std::thread или pthread_t  (Прочитано 5900 раз)
YvenTitan
Самовар
**
Offline Offline

Сообщений: 174


Просмотр профиля
« : Декабрь 08, 2016, 15:22 »

Здравствуйте
Мне надо написать программу без QT с потоками под QNX (советы подойдут и под Linux). Я бы хотел в бОльшей степени писать на С++, чем на С.
Сначала я использовал std::thread, но столкнулся с проблемой убить процесс по pidу. И вообще в этом классе мало функций.
Если писать через pthread_t, то там много функций и проблему с удалением потока решить легче, но нельзя вызвать функцию-член класса.
Через что посоветуете делать потоки?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Декабрь 08, 2016, 15:30 »

> но столкнулся с проблемой убить процесс по pidу. И вообще в этом классе мало функций

Не совсем понял проблему.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
YvenTitan
Самовар
**
Offline Offline

Сообщений: 174


Просмотр профиля
« Ответ #2 : Декабрь 08, 2016, 15:36 »

Я не знаю, как узнать pid процесса, если создаю поток через std::thread
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Декабрь 08, 2016, 15:43 »

А зачем тебе пид процесса?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
YvenTitan
Самовар
**
Offline Offline

Сообщений: 174


Просмотр профиля
« Ответ #4 : Декабрь 08, 2016, 15:46 »

Для того, чтобы сделать kill по pid
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #5 : Декабрь 08, 2016, 15:52 »

Ты видимо путаешь потоки и процессы. Обрисуй задачу.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3258


Просмотр профиля
« Ответ #6 : Декабрь 08, 2016, 16:23 »

Есть нативная ручка
Но это неправильный подход - тред нельзя просто так убивать, он должен корректно завершить работу.
Для этого можно завести флажок finished и проверять его из треда.
Записан
qate
Супер
******
Offline Offline

Сообщений: 1175


Просмотр профиля
« Ответ #7 : Декабрь 08, 2016, 21:12 »

Через что посоветуете делать потоки?

для начала прочитать  "Энтони Уильямс - Параллельное программирование на С++ в действии"
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 22.