QThead и subthread. |
Здравствуйте, гость ( Вход | Регистрация )
QThead и subthread. |
smartchecker |
17.11.2011, 12:10
Сообщение
#1
|
Студент Группа: Участник Сообщений: 83 Регистрация: 7.9.2011 Пользователь №: 2853 Спасибо сказали: 0 раз(а) Репутация: 0 |
Представим картину:
Есть поток А (ThreadA), который запускает два потока ThreadB и ThreadC, которые что-то там делают. И тот из потоков, который завершился последним, запускает поток ThreadD. Попутно надо куда-нибудь в qDebug() писать какой именно поток запустил поток ThreadD. Кто-нибудь может мне дать пример? |
|
|
Алексей1153 |
17.11.2011, 12:31
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
глобальный мутекс в помощь
|
|
|
smartchecker |
17.11.2011, 12:53
Сообщение
#3
|
Студент Группа: Участник Сообщений: 83 Регистрация: 7.9.2011 Пользователь №: 2853 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
PAFOS |
17.11.2011, 13:56
Сообщение
#4
|
Активный участник Группа: Участник Сообщений: 258 Регистрация: 27.12.2010 Из: Дмитров Пользователь №: 2309 Спасибо сказали: 29 раз(а) Репутация: 8 |
Скорее пойдет QAtomicInt. При старте каждый поток инкрементирует QAtomicInt, а при завершении декрементирует. если после декремента значение переменной == 0, тогда этот поток завершился последним.
Как-то так) |
|
|
smartchecker |
18.11.2011, 15:25
Сообщение
#5
|
Студент Группа: Участник Сообщений: 83 Регистрация: 7.9.2011 Пользователь №: 2853 Спасибо сказали: 0 раз(а) Репутация: 0 |
А с mutex'ом как будет выглядеть?
И ещё. Допустим в ThreadB и ThreadC что-то вычисляли и мне в ThreadD нужны рез-таты этих вычислений. Где хранить? Как доставать, если поток уже завершился? |
|
|
smartchecker |
22.11.2011, 12:14
Сообщение
#6
|
Студент Группа: Участник Сообщений: 83 Регистрация: 7.9.2011 Пользователь №: 2853 Спасибо сказали: 0 раз(а) Репутация: 0 |
Ну покажите мне кто-нибудь пример с mutex'ом.
Я даже не понимаю куда его тут приткнуть. QAtomicInt смотрится красиво. |
|
|
PAFOS |
22.11.2011, 16:00
Сообщение
#7
|
Активный участник Группа: Участник Сообщений: 258 Регистрация: 27.12.2010 Из: Дмитров Пользователь №: 2309 Спасибо сказали: 29 раз(а) Репутация: 8 |
Я вижу с мьютексом только один выход - аналог QAtomicInt.
далее - по аналогии с QAtomicInt |
|
|
smartchecker |
22.11.2011, 17:04
Сообщение
#8
|
Студент Группа: Участник Сообщений: 83 Регистрация: 7.9.2011 Пользователь №: 2853 Спасибо сказали: 0 раз(а) Репутация: 0 |
Как из другого потока(допустим G) добраться до QAtomicInt, который является членом потока A?
Но поток А не является родителем потока G. |
|
|
PAFOS |
23.11.2011, 8:27
Сообщение
#9
|
Активный участник Группа: Участник Сообщений: 258 Регистрация: 27.12.2010 Из: Дмитров Пользователь №: 2309 Спасибо сказали: 29 раз(а) Репутация: 8 |
если поток А не имеет доступа никаким образом к потоку G (через указатель или через сигнал/слот), тогда QAtomicInt - статический член класса A
|
|
|
smartchecker |
23.11.2011, 10:22
Сообщение
#10
|
Студент Группа: Участник Сообщений: 83 Регистрация: 7.9.2011 Пользователь №: 2853 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
Текстовая версия | Сейчас: 30.11.2024, 1:34 |