![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
smartchecker |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 83 Регистрация: 7.9.2011 Пользователь №: 2853 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Представим картину:
Есть поток А (ThreadA), который запускает два потока ThreadB и ThreadC, которые что-то там делают. И тот из потоков, который завершился последним, запускает поток ThreadD. Попутно надо куда-нибудь в qDebug() писать какой именно поток запустил поток ThreadD. Кто-нибудь может мне дать пример? |
|
|
Алексей1153 |
![]()
Сообщение
#2
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
глобальный мутекс в помощь
![]() |
|
|
smartchecker |
![]()
Сообщение
#3
|
Студент ![]() Группа: Участник Сообщений: 83 Регистрация: 7.9.2011 Пользователь №: 2853 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
PAFOS |
![]()
Сообщение
#4
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 258 Регистрация: 27.12.2010 Из: Дмитров Пользователь №: 2309 Спасибо сказали: 29 раз(а) Репутация: ![]() ![]() ![]() |
Скорее пойдет QAtomicInt. При старте каждый поток инкрементирует QAtomicInt, а при завершении декрементирует. если после декремента значение переменной == 0, тогда этот поток завершился последним.
Как-то так) |
|
|
smartchecker |
![]()
Сообщение
#5
|
Студент ![]() Группа: Участник Сообщений: 83 Регистрация: 7.9.2011 Пользователь №: 2853 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
А с mutex'ом как будет выглядеть?
И ещё. Допустим в ThreadB и ThreadC что-то вычисляли и мне в ThreadD нужны рез-таты этих вычислений. Где хранить? Как доставать, если поток уже завершился? |
|
|
smartchecker |
![]()
Сообщение
#6
|
Студент ![]() Группа: Участник Сообщений: 83 Регистрация: 7.9.2011 Пользователь №: 2853 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Ну покажите мне кто-нибудь пример с mutex'ом.
Я даже не понимаю куда его тут приткнуть. QAtomicInt смотрится красиво. |
|
|
PAFOS |
![]()
Сообщение
#7
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 258 Регистрация: 27.12.2010 Из: Дмитров Пользователь №: 2309 Спасибо сказали: 29 раз(а) Репутация: ![]() ![]() ![]() |
Я вижу с мьютексом только один выход - аналог QAtomicInt.
далее - по аналогии с QAtomicInt |
|
|
smartchecker |
![]()
Сообщение
#8
|
Студент ![]() Группа: Участник Сообщений: 83 Регистрация: 7.9.2011 Пользователь №: 2853 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Как из другого потока(допустим G) добраться до QAtomicInt, который является членом потока A?
Но поток А не является родителем потока G. |
|
|
PAFOS |
![]()
Сообщение
#9
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 258 Регистрация: 27.12.2010 Из: Дмитров Пользователь №: 2309 Спасибо сказали: 29 раз(а) Репутация: ![]() ![]() ![]() |
если поток А не имеет доступа никаким образом к потоку G (через указатель или через сигнал/слот), тогда QAtomicInt - статический член класса A
|
|
|
smartchecker |
![]()
Сообщение
#10
|
Студент ![]() Группа: Участник Сообщений: 83 Регистрация: 7.9.2011 Пользователь №: 2853 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 18.2.2025, 16:19 |