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.
Лучше описать не могу, так как не совсем понимаю как должна выглядеть программа такая.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Алексей1153
  опции профиля:
сообщение 7.12.2010, 22:13
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


RazrFalcon, если сравнений нужно производить больше, чем у тебя ядер процессора, то распараллеливать тут нечего - будет только медленнее. Сравнивай в одном отдельном потоке по очереди

то ли дело, если бы было 4 ядра и одно сравнение: 1 ядро - главный поток, 3 потока в 3 ядрах: каждый свою треть картинки шмонает. Вот тогда выгода в скорости налицо :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- 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


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


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




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