void tst_QSemaphore::producerConsumer() { Producer producer; Consumer consumer; producer.start(); consumer.start(); producer.wait(); consumer.wait(); }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); Producer producer; producer.registerCallBack(callBackFunction); producer.start(); producer.wait(); }
int main() { usedSpace += BufferSize; Producer producer; Consumer consumer; producer.start(); consumer.start(); producer.wait(); consumer.wait(); return 0; }
//! [5] int main(int argc, char *argv[]) //! [5] //! [6] { QCoreApplication app(argc, argv); Producer producer; Consumer consumer; producer.start(); consumer.start(); producer.wait(); consumer.wait(); return 0; }
int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); Producer producer; Consumer consumer; producer.start(); consumer.start(); producer.wait(); consumer.wait(); return a.exec(); }
int main(int argc, char *argv[]) { //QApplication app(argc, argv); //Window *w = new Window; //w->resize(300, 300); //w->show(); //return app.exec(); QApplication app(argc, argv); Producer produer; Consumer consumer; produer.start(); consumer.start(); produer.wait(); consumer.wait(); return app.exec(); }
int main() { ProducerConsumerMonitor monitor; Producer producer = Producer(&monitor); producer.start(); Consumer consumer = Consumer(&monitor); consumer.start(); Consumer anotherConsumer = Consumer(&monitor); anotherConsumer.start(); producer.waitFor(); consumer.waitFor(); anotherConsumer.waitFor(); }
int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); initaldatabase();//初始化数据库 QSqlDatabase::removeDatabase("first"); Producer producer; producer.start(); SqlwriteThread_buffer *threadvector[THREADNUM]; for(int i=0; i< THREADNUM; ++i) { threadvector[i] = new SqlwriteThread_buffer("localhost","whztest","root","infonet313",i); // threadvector[i]->SetRange(1024*10); } QTime t; t.start(); for(int i=0; i< THREADNUM; ++i) { threadvector[i]->start(); } QTime blankspace; blankspace.start(); for(int i=0; i< THREADNUM; ++i) { qDebug()<<QObject::trUtf8("第 %1 个线程和第 %2 个线程之间等待耗时:%3 ms").arg(i).arg(i+1).arg(blankspace.elapsed()); threadvector[i]->wait(); blankspace.restart(); } producer.wait(); qDebug()<<QObject::trUtf8("插入 %1 条记录,耗时:%2 ms").arg(1024*100).arg(t.elapsed()); exit(0); return a.exec(); }
int main(int argc, char** argv) { // char consumer_reg[100]; int i=0; int flag_prod=0; int flag_cons=0; int check_flag=0; for(i=0;i<argc;i++) { if((strcmp(argv[i],"-p")==0)) check_flag++; if((strcmp(argv[i],"-d")==0)) check_flag++; } if(check_flag==1){ for(i=1;i<argc;i++) { if((strcmp(argv[i],"-p")==0)) { printf("In Producer\n"); i=i+1; flag_prod=1; break; } if((strcmp(argv[i],"-d")==0)) { printf("In Consumer\n"); i=i+1; flag_cons=1; break; } } if(flag_prod==1) { int j=0; number_of_prod_files=argc-i; for(j=0;j<number_of_prod_files;j++) { strcpy(producer_reg[j],argv[i]); ++i; } printf("Files in the Producer are as below\n"); for(j=0;j<number_of_prod_files;j++) { printf("%s\n",producer_reg[j]); } Producer p; p.start(); flag_prod=0; } else if(flag_cons==1) { int j=0; char string_to_send[800]; number_of_cons_files=argc-i; for(j=0;j<number_of_cons_files;j++) { memset(&string_to_send,0,sizeof(string_to_send)); strcat(string_to_send,argv[i]); strcat(string_to_send,"/$"); strcpy(consumer_reg[j],string_to_send); ++i; } printf("Files in the Consumer are as below\n"); for(j=0;j<number_of_cons_files;j++) { printf("%s\n",consumer_reg[j]); } Consumer c; c.start_c(); flag_cons=0; } } else if(check_flag==2) { int p_index=0; int d_index=0; for(i=1;i<argc;i++) { if((strcmp(argv[i],"-p")==0)) p_index=i; if((strcmp(argv[i],"-d")==0)) d_index=i; if(p_index!=0 && d_index!=0) break; } if(p_index<d_index && p_index!=0) { i=0; int j=0; for(j=p_index+1;j<d_index;j++) { strcpy(producer_reg[i],argv[j]); ++i; } number_of_prod_files=i; printf("Files in the Producer are as below\n"); for(j=0;j<number_of_prod_files;j++) { printf("%s\n",producer_reg[j]); } i=0; char string_to_send[800]; for(j=d_index+1;j<argc;j++) { memset(&string_to_send,0,sizeof(string_to_send)); strcat(string_to_send,argv[j]); strcat(string_to_send,"/$"); strcpy(consumer_reg[i],string_to_send); i++; } number_of_cons_files=i; printf("Files in the Consumer are as below\n"); for(j=0;j<number_of_cons_files;j++) { printf("%s\n",consumer_reg[j]); } } if(d_index<p_index && d_index!=0) { int j=0; i=0; char string_to_send[800]; for(j=d_index+1;j<p_index;j++) { memset(&string_to_send,0,sizeof(string_to_send)); strcat(string_to_send,argv[j]); strcat(string_to_send,"/$"); strcpy(consumer_reg[i],string_to_send); i++; } number_of_cons_files=i; printf("Files in the Consumer are as below\n"); for(j=0;j<number_of_cons_files;j++) { printf("%s\n",consumer_reg[j]); } i=0; for(j=p_index+1;j<argc;j++) { strcpy(producer_reg[i],argv[j]); ++i; } number_of_prod_files=i; printf("Files in the Producer are as below\n"); for(j=0;j<number_of_prod_files;j++) { printf("%s\n",producer_reg[j]); } } int j=0; for(j=0;j<number_of_prod_files;j++) { for(i=0;i<number_of_cons_files;i++) { char checking[1000]; memset(&checking,0,sizeof(checking)); strcpy(checking,producer_reg[j]); strcat(checking,"/$"); if((strcmp(checking,consumer_reg[i]))==0) { printf("Sincgle node cannot request the file it already has......Exiting the program\n"); exit(0); } } } pid_t pid=fork(); if(pid==0) { Producer p; p.start(); } else if(pid>0) { Consumer c; c.start_c(); } } else { printf("Wrong inputs entered..... Exiting"); exit(0); } }
static void test() { Producer thread; thread.start(); }