クライアントで2つのスレッドが実行されているクライアントサーバーコードに取り組んでいます。これらのスレッドを両方とも60秒間継続して実行したいと思います。しかし、私は2つの問題に直面しています。
まず、でforループを実行しているときmain()
、retail_thread()
は、生成しているのと同じ数を生成します。代わりに、乱数を生成する必要がありbulk_thread()
ます。次に、forループを正確に60秒実行するというアイデアを得ることができません。
それは宿題の問題なので、正確な解決策ではないにしても、ヒントや支援をいただければ幸いです。タイプミスがある場合は無視してください。
int main(int argc, char *argv[]) {
int pt,i;
pthread_t thread;
/* n a very large number */
/* run below code for 60 seconds */
for(i=0;i<n;i++)
{
pt = pthread_create(&thread, NULL, retail_thread, (void*) NULL);
bulk_thread(NULL);
}
}
void* retail_thread(void* ){
srand(time(NULL));
int order_size = rand()%20 + 1;
printf("in retail \n ");
sendtoserver_R(RETAIL_PORT,order_size);
int wait_time = 100 + (5*order_size);
printf("Retail thread order = %d and execution fully completed \n\n",order_size);
}
void* bulk_thread(void* ){
srand(time(NULL));
int order_size = rand()%90 + 10;
printf("in bulk \n");
int wait_time = 100 + (5*order_size);
sendtoserver_B(BULK_PORT,order_size);
printf("Bulk thread order = %d and execution fully completed \n\n",order_size);
}
sendtoserver()
ソケットを作成してサーバーにデータを送信するためだけのものです。