crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Логика работы многопоточности
RazrFalcon
  опции профиля:
сообщение 7.12.2010, 14:23
Сообщение #1


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Пример:
Раскрывающийся текст
#include <QtCore/QCoreApplication>
#include <QtDebug>
#include <QThread>

class MyThread : public QThread
{
public:
     void run();
};

class MyThread2 : public QThread
{
public:
     void run();
};

int match(переменные)
{
    for (int j=0; j<10; j++)
    {

    }
    return n;
}

int main()
{
    MyThread th;
    MyThread2 th2;
    th.start();
    th2.start();
    for (int i=0; i<10; i+=2)
    {
        //тут я должен передать i=0 в один поток, а i=1 во второй.
        и получить обратно
    }
    return 0;
}

void MyThread::run()
{
    match(переменные);
}

void MyThread2::run()
{
    match(переменные);
}


Одним словом у меня есть цикл в котором я должен передавать разные значение в потоки и получать обратно результат обработки функции match.
Лучше описать не могу, так как не совсем понимаю как должна выглядеть программа такая.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
RazrFalcon
  опции профиля:
сообщение 13.12.2010, 21:36
Сообщение #2


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Да просто я до этого запускал пол обработки в главном потоке, а вторую половину в дополнительном.
И когда понадобилось что бы дополнительный работал чуть дольше, вылезла такая ошибка.
Я понимаю, что просто главный завершился уже, и убивает дополнительный. Просто когда сделал два дополнительных потока, а главный только запускал их, то прога рушилась сразу, мне надо как то не дать завершатся главному потоку пока остальные не закончат работу.
А то что я написал тоже криво работает, и проц еще больше жрет <_<
Я понимаю что потоки - это не на один день, но все равно.
Что то с isFinished ()
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- RazrFalcon   Логика работы многопоточности   7.12.2010, 14:23
- - Sokoloff   Цитата(RazrFalcon @ 7.12.2010, 14:23) При...   7.12.2010, 15:28
- - Iron Bug   Цитата(RazrFalcon @ 7.12.2010, 16:23) Луч...   7.12.2010, 15:34
- - RazrFalcon   В этом и проблема, я не могу понять логику работы....   7.12.2010, 15:55
- - Алексей1153   RazrFalcon, если сравнений нужно производить больш...   7.12.2010, 22:13
- - RazrFalcon   Ну так, у меня 2-а ядра. Каждое свою половину срав...   7.12.2010, 22:43
- - Алексей1153   Цитатак примеру четные исходные первый поток обраб...   8.12.2010, 19:38
|- - RazrFalcon   Я имел в виду половину изображениЙ (пол. количеств...   8.12.2010, 19:54
- - Алексей1153   ну, если во время вычислений основной поток ленитс...   8.12.2010, 20:18
- - Litkevich Yuriy   Цитата(RazrFalcon @ 8.12.2010, 21:54) 1-й...   8.12.2010, 20:19
- - RazrFalcon   Я так понимаю, надо просто пробовать разные вариан...   8.12.2010, 20:33
- - Litkevich Yuriy   вообще второй поток, кроме первого нужен только дл...   8.12.2010, 20:40
- - RazrFalcon   Вроде понял, в основном запуска обработку половины...   8.12.2010, 20:46
- - Алексей1153   Цитата(RazrFalcon @ 8.12.2010, 22:46) ~50...   8.12.2010, 21:27
- - Iron Bug   Цитата(Litkevich Yuriy @ 8.12.2010, 22:19...   9.12.2010, 9:03
- - RazrFalcon   Как правильно определить что потоки завершились, а...   13.12.2010, 20:41
- - BRE   RazrFalcon, попробуй вначале разобраться и поэкспе...   13.12.2010, 21:09
- - RazrFalcon   Да просто я до этого запускал пол обработки в глав...   13.12.2010, 21:36


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.12.2024, 19:50