Запуск двух потоков с общим кольцевым буфером - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть две функции.Один из них находится в классе поиска и имеет имя продюсер1, а второй - в классе search2 и называется потребитель1.Когда эти две функции независимы, я использую эти команды, и обе функции работают как потоки одновременно.

 thread1 = new QThread();
 thread2 = new QThread();
 mySearch = new Search() ;
 mySearch2 = new Search2() ;

 mySearch->connect(mySearch,SIGNAL(transmit_to_gui(QStringList)),this,SLOT(receive_from_object(QStringList)));
 mySearch2->connect(mySearch2,SIGNAL(transmit_to_gui1(QStringList)),this,SLOT(receive_from_object1(QStringList)));      

  connect(mySearch, SIGNAL(workRequested()), thread1, SLOT(start()));
  connect(thread1, SIGNAL(started()), mySearch, SLOT(producer1()));
  connect(mySearch, SIGNAL(finished()), thread1, SLOT(quit()), Qt::DirectConnection);
  thread1->start();

 connect(mySearch2, SIGNAL(workRequested2()), thread2, SLOT(start()));
 connect(thread2, SIGNAL(started()), mySearch2, SLOT(consumer1()));
 connect(mySearch2, SIGNAL(finished2()), thread2, SLOT(quit()), Qt::DirectConnection);
thread2->start();

Но, когда они имеют общий кольцевой буфер и они зависят, указанные выше команды не активируют потоки.Может кто-нибудь помочь, пожалуйста?

Заранее спасибо.

...