int main(int argc, char const *argv[]) { //init mq close_mq(); init_mq(); send_url(argv[1]); /* pthread_t crawler; if((pthread_create (&crawler, NULL, asyncCrawling,NULL)!=0)){ printf("create crawler pthread failed!\n"); return 0; } pthread_t analysis; if((pthread_create (&analysis, NULL, analysis_thread_dispatch,NULL)!=0)){ printf("create analysis pthread failed!\n"); return 0; } pthread_join(crawler, NULL); printf("quit the crawler thread!\n"); pthread_join(analysis, NULL); printf("quit the analysis thread!\n"); */ pool_init(THREAD_NUM); sleep(1); int i; for(i=0;i<THREAD_NUM;i++){ if(i==THREAD_NUM-1){ pool_add_worker(asyncCrawling,NULL); }else{ pool_add_worker(Analysis,NULL); } } printf("nihao!\n"); sleep(2); pool_destroy(); close_mq(); return 0; }
void download_speed(char* dest_server_ip,char* interface_name,char* vist_domain) { /*https check ?*/ /*create url like http://speedtest.bmcc.com.cn/speedtest/random350x350.jpg */ int size[] = {4000,4000,4000,3500,3500,3500,3000,3000,3000,2500,2500,2500,2000,2000,2000,1500,1500,1500,1000,1000,1000,750,750,750,500,500,500,350,350,350}; int size_num = sizeof(size)/4; int i; struct download_post_info info[size_num]; /*delay time */ struct timeval starttime,endtime; for(i=0;i<size_num;i++){ fill_down_request(info[i].post_string,size[i],vist_domain); strncpy(info[i].server_ip,dest_server_ip,IPV4_SIZE); strncpy(info[i].interface,interface_name,MAX_NAME_LEN); } gettimeofday(&starttime,0); for(i=0;i<size_num;i++){ pool_add_worker(file_download,&info[i]); } while(1){ usleep(1000); //IK_APP_DEBUG_LOG("cur_queue_size = %d\n",pool->cur_queue_size); if(pool->cur_queue_size == 0){ pool_destroy(); /*when the pool been destroy , mission had been done */ gettimeofday(&endtime,0); double timeuse = (1000000*(endtime.tv_sec - starttime.tv_sec) + endtime.tv_usec - starttime.tv_usec)/1000000; double result = (sum_lens / timeuse / (1024 * 1024)); printf("sum_lens: %lld byte | time_use: %f s | speed : %.2fMB\n",sum_lens,timeuse,result); break; } } }
int main(int argc, char *argv[]) { int NUM_THREAD = 100; int NUM_WORK = 10; /* 线程池中最多 xx 个活动线程 */ init_thread_pool(NUM_THREAD); /* 连续向池中投入 xx 个任务 */ int *working_num = (int *) malloc(sizeof(int) * NUM_WORK); int i; for (i = 0; i < NUM_WORK ; ++i) { working_num[i] = i; pool_add_worker(thread_func, &working_num[i]); } printf("\n"); /* 等待所有任务完成 */ //sleep (5); /* 销毁线程池 */ pool_destroy(); free(working_num); return 0; }
void upload_speed(char* dest_server_ip,char* interface_name,char* vist_domain) { int i; int loop = HTTP_SEND_NUM; struct download_post_info info[HTTP_SEND_NUM]; /*delay time */ struct timeval starttime,endtime; /*fill struct for post */ for(i=0;i<loop;i++){ fill_upload_request(info[i].post_string,vist_domain); strncpy(info[i].server_ip,dest_server_ip,IPV4_SIZE); strncpy(info[i].interface,interface_name,MAX_NAME_LEN); } gettimeofday(&starttime,0); for(i=0;i<loop;i++){ pool_add_worker(file_upload,&info[i]); } while(1){ usleep(1000); //IK_APP_DEBUG_LOG("pool->cur_queue_size == %d\n",pool->cur_queue_size); if(pool->cur_queue_size == 0){ pool_destroy(); gettimeofday(&endtime,0); double timeuse = (1000000*(endtime.tv_sec - starttime.tv_sec) + endtime.tv_usec - starttime.tv_usec)/1000000; double result = (sum_send_lens / timeuse / (1024 * 1024)); printf("sum_lens: %lld byte | time_use: %f s | speed : %.2fMB\n",sum_send_lens,timeuse,result); break; } } }
int main(int argc,char **argv) { /*线程池中最多3个活动线程*/ pool_init(3); int *workingnum=(int *)malloc(sizeof(int)*10); /*连续向线程池中投入10个任务*/ int i; for(i=0;i<10;i++) { workingnum[i]=i; pool_add_worker(myprocess,&workingnum[i]); } /*等待所有任务完成*/ sleep(5); /*销毁线程池*/ pool_destroy(); free(workingnum); return 0; }
int main(int argc, char * argv[]) { pthread_t manage_tid; thread_revoke_init(); sleep(1); pool_init(g_def_thread_num); sleep(3); pthread_create(&manage_tid,NULL,thread_manage,NULL); // int *workingnum = (int *)malloc(sizeof(int)*1000); int i; for(i = 0; ; i++) { pool_add_worker(myprocess,&i); i++; pool_add_worker(myprocess,&i); i++; pool_add_worker(myprocess,&i); i++; pool_add_worker(myprocess,&i); sleep(1); if(i%8== 0) { sleep(10); } if(i%10 == 0) { sleep(20); } } sleep(5); printf("=======xiaohui========\n"); pool_destroy(); // free(workingnum); return 0; }
int main (int argc, char **argv) { pool_init (2); int *workingnum = (int *) malloc (sizeof (int) * 10); int i; for (i = 0; i < 10; i++) { workingnum[i] = i; pool_add_worker(myprocess, &workingnum[i]); } sleep (15); pool_destroy (); free (workingnum); return 0; }
static void handle_jpeg_img_proc(const void *p, int size, void *arg) { struct vid *v = arg; pthread_mutex_lock(&v->tran_frm_mutex); v->tran_frm.start = (void*)p; v->tran_frm.len = size; v->tran_frm_index++; pthread_mutex_unlock(&v->tran_frm_mutex); if (v->view_frm.start == NULL) { v->view_frm.len = size; v->view_frm.start = malloc(size); memcpy(v->view_frm.start, p, size); pool_add_worker(v->srv->pool, decJpg2preview, v); } }
int main(int argc, char *argv[]) { pool_init(3); int *working_num = (int *) malloc(sizeof(int) * 5); int i = 0; for (; i < 5; i++) { working_num[i] = i; pool_add_worker(my_process, &working_num[i]); } sleep(5); pool_destory(); free(working_num); return 0; }