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

网站建设年费大沥网站设计

网站建设年费,大沥网站设计,网站企业型类,wordpress图片批量上传插件主线程启动用户指定数量的线程#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.zqtcl.cn/news/931543/

相关文章:

  • 有没有什么专业做美业的网站安卓免费翻外墙的app
  • ppt网站建设教育网站的建设
  • 文化馆网站建设情况网站建设建站公司
  • 自己怎么做dj 视频网站网站推广 济南
  • 2014网站怎么备案怎样建置换平台网站
  • 惠州网站建设信息嘉兴做网站软件
  • 如何做发表文章的网站淮安市建设工程质量监督站网站
  • 做洁净的网站太原便宜做网站的公司
  • 网站设计评级检索标准的网站
  • 做个网站每年都要交域名费吗html静态网页首页模板
  • 网站资源整合与建设wordpress固定链接设置后404
  • 网站历史快照seo推广方法
  • 做淘宝客的的网站有什么要求北京专业网站制作公司
  • 建设网站 知乎个人可以开发app软件吗
  • 网站如何后台管理北京正规网站建设有几种
  • 临沂网站排名高质量的中山网站建设
  • 响应式网站定制开发网络教育全程托管
  • 做网站中的剪辑图片龙岗网站
  • 建设购物网站的意义免费做外贸的网站平台
  • 长沙做电商网站设计重庆观音桥旅游攻略
  • 网站建设的目标与期望动漫设计与制作工资多少
  • 做网站找网站设计公司 长沙
  • 网站维护内容网站代码下载
  • 西安建设主管部门官方网站wordpress返回件
  • 建立免费空间网站南宁seo推广外包
  • 网站初期如何推广用秀米制作h5详细步骤
  • 做网站需要执照嘛开发 网站 团队
  • 怎么提交网站关键词包头人脸检测系统
  • 哪个网站开发是按月付费的婚纱摄影建设网站的目的
  • 站长之家app简单网站制作步骤