当前位置: 首页 > news >正文

学网站建设 去那里珠海市官网网站建设价格

学网站建设 去那里,珠海市官网网站建设价格,运动服装商城网站建设,门户类网站有哪些主线程启动用户指定数量的线程#xff0c;这些线程进入条件等待状态。 主线程生成一些任务#xff08;一定计算量#xff09;#xff0c;每生成一个新的任务#xff0c;就用条件变量唤醒一个线程#xff0c;当这个唤醒线程执行完任务时#xff0c;回到条件等待状态。 当…主线程启动用户指定数量的线程这些线程进入条件等待状态。 主线程生成一些任务一定计算量每生成一个新的任务就用条件变量唤醒一个线程当这个唤醒线程执行完任务时回到条件等待状态。 当主线程生成完所有任务设置全局变量表示再没有要生成的任务了并用一个广播唤醒所有线程。为了清晰起见建议任务采用链表操作。 #include iostream #include stdlib.h #include pthread.h using namespace std; const int N1e4,N11e6; struct Node {int id;int a[N1],b[N1];Node* next; }; struct Queue {Node* front;Node* tail; }; int InitQueue(Queue* T); int Add(Queue* T, int e); int DoTask(Queue* T, int* ep); int thread_count, finished 0; pthread_mutex_t mutex,actprint; pthread_cond_t cond; void* task(void* rank); Queue Q; int main(int argc, char* argv[]) { srand(0);InitQueue(Q);pthread_t *thread_handles;thread_count strtol(argv[1], NULL, 10);//从命令行读取线程数thread_handles new pthread_t[thread_count];//分配长度pthread_mutex_init(mutex, NULL);pthread_mutex_init(actprint, NULL);pthread_cond_init(cond, NULL);int n;printf(Please input the task number:);cinn;for (int i 0; i thread_count; i)pthread_create(thread_handles[i], NULL, task, (void*)i);for (int i 0; i n; i) {pthread_mutex_lock(mutex);Add(Q, i);pthread_cond_signal(cond);pthread_mutex_unlock(mutex);}finished 1;pthread_cond_broadcast(cond);for (int i 0; i thread_count; i)pthread_join(thread_handles[i], NULL);pthread_mutex_destroy(mutex);pthread_mutex_destroy(actprint);pthread_cond_destroy(cond);free(thread_handles);return 0; } int InitQueue(Queue* T) {T-front (Node*)malloc(sizeof(Node));T-tail T-front;T-front-id 0;T-front-next NULL;return 0; } int Add(Queue* T, int e) {Node* newnode (Node*)malloc(sizeof(Node));newnode-id e;newnode-next 0;int t,k0;for(int i0;iN1;i){trand()%N;newnode-a[k]t;}k0;for(int i0;iN;i){trand()%N;newnode-b[k]t;}T-tail-next newnode;T-tail newnode;return 0; } int DoTask(Queue* T, int* e) {Node* dest;if (T-tail T-front)return 0;//队列中已经没有任务dest T-front-next;//从头取出一个任务if (dest 0) return 0;for(int i0;iN1;i){//做任务dest-a[i]dest-a[i]*dest-b[i];}*e dest-id;T-front-next dest-next;free(dest);return 0; } void* task(void* rank) {long long my_rank (long long)rank;pthread_mutex_lock(actprint);coutprocess my_rank has been activatedendl;pthread_mutex_unlock(actprint);int my_task;Node** p (Q.front-next);while (1) {pthread_mutex_lock(mutex);if (finished) {if (*p NULL) {pthread_mutex_unlock(mutex);break;}DoTask(Q, my_task);pthread_mutex_unlock(mutex);printf(Thread %ld: Task no.%d\n, my_rank, my_task);}else {while(pthread_cond_wait(cond, mutex)!0);DoTask(Q, my_task);pthread_mutex_unlock(mutex);printf(Thread %ld: Task no.%d\n, my_rank, my_task);}} } 参考资料 Pthreads实现任务队列
http://www.yutouwan.com/news/176550/

相关文章:

  • 网站建设论文的摘要包头有没有专业做淘宝网站的
  • 做代还的人都聚集在哪些网站德州住房和城乡建设厅网站
  • 详细论述制作网站的步骤广州网站建设正
  • 洛龙区网站设计建设石家庄网站快速备案
  • 崇安区网站建设价格国外最开放的浏览器有什么优势
  • jsp 响应式网站模板wordpress考试主题
  • 需要做网站的企业电子商务网站建设期末题库
  • 杭州网站建设咨询蓝韵网络手机网站模板源码
  • 做电商不不得不知道的网站安卓手机优化软件哪个好
  • 做搜狗pc网站点岳阳网站建设网站
  • 郑州旅游网站建设网络公司构建网站
  • 建设企业网站新闻开发的意义软件接口设计文档
  • 做网站 计算机有交嘛工业设计公司
  • 帝国怎么做中英文网站网页生成助手
  • 网站开发一般要用到哪些软件有哪些电商发展新方向
  • 局域网网站制作网页都有哪些
  • 银川网站建设推广快乐无极网站
  • 建网站找哪个公司做网站宝安
  • 企业商城网站多少钱中山市建设工程
  • 在凡科网申请的网站设置网页访问密码怎样在网站上做办公家具
  • 山西建设网官方网站网页制作设计培训
  • 班级网站空间建设取得效果怎么才能在百度上打广告
  • 石家庄哪家公司做网站好老板合作网站开发
  • 太原网站排名系统软件销售具体怎么做的
  • 我是建造网站html代码下载
  • 网页型网站科技项目申报
  • 自己做的旅游网站 介绍wordpress仿微博
  • 西安金融网站建设做暖漫画网站
  • 免费模板下载网站整合营销
  • 云上的网站怎么做等保苏州高端网站设计机构