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

太原cms模板建站有没有做牛羊角的网站

太原cms模板建站,有没有做牛羊角的网站,ppt在哪个软件制作,成都房地产市场https://www.cnblogs.com/GyForever1004/p/9185240.html 线程池的定义 线程池是一种多线程处理形式#xff0c;处理过程中将任务添加到队列#xff0c;然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小#xff0c;以默认的优先级…https://www.cnblogs.com/GyForever1004/p/9185240.html 线程池的定义 线程池是一种多线程处理形式处理过程中将任务添加到队列然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小以默认的优先级运行并处于多线程单元中。如果某个线程在托管代码中空闲如正在等待某个事件,则线程池将插入另一个辅助线程来使所有处理器保持繁忙。如果所有线程池线程都始终保持繁忙但队列中包含挂起的工作则线程池将在一段时间后创建另一个辅助线程但线程的数目永远不会超过最大值。超过最大值的线程可以排队但他们要等到其他线程完成后才启动。 什么时候需要创建线程池呢 简单的说如果一个应用需要频繁的创建和销毁线程而任务执行的时间又非常短这样线程创建和销毁的带来的开销就不容忽视这时也是线程池该出场的机会了。如果线程创建和销毁时间相比任务执行时间可以忽略不计则没有必要使用线程池了。 实现程序未完成相关资源的释放操作 /********************Pthread Pool14/06/18 22:06********************/#include stdio.h #include stdlib.h #include unistd.h #include sys/types.h #include pthread.h #include pthread.h/* 任务节点结构 */ typedef struct node {void (*func)(void *arg);unsigned int *work_id;struct node *next; }TaskNode;/* 线程池结构 */ typedef struct {pthread_cond_t ready;pthread_mutex_t lock;struct node *task_head;pthread_t *thread_id;unsigned int cur_queue_size; }PthreadPool;static PthreadPool *pool NULL;/* 定义线程 */ void *thread_routine (void *arg) {while(1){pthread_mutex_lock(pool-lock);if(!pool-cur_queue_size){printf(Thread is waiting .... \n);pthread_cond_wait(pool-ready, pool-lock);}pool-cur_queue_size--;TaskNode *worker pool-task_head;pool-task_head worker-next;pthread_mutex_unlock ((pool-lock));/* 调用函数执行任务 */worker-func(worker-work_id);free (worker);worker NULL;} }static void system_init () {int i 0;pool (PthreadPool*) malloc(sizeof(PthreadPool));/* 初始化锁与条件变量 */pthread_mutex_init (pool-lock, NULL);pthread_cond_init (pool-ready, NULL);/* 在池中加入 3 个线程 */pool-thread_id (pthread_t*) malloc(3 * sizeof(PthreadPool));pool-cur_queue_size 0;pool-task_head NULL;for(; i3; i)pthread_create(pool-thread_id[i], NULL, thread_routine, NULL); }/* 添加任务 */ int pool_add_work (void (*process)(void *arg), unsigned int *id) {TaskNode *new_work (TaskNode*) malloc(sizeof(TaskNode));new_work-func process;new_work-work_id id;new_work-next NULL;pool-cur_queue_size;TaskNode *temp pool-task_head;if(!temp)pool-task_head new_work;else{while(temp-next)temp temp-next;temp-next new_work;}pthread_cond_signal(pool-ready); }/* 定义用户任务 */ void my_process(void *arg) {printf (threadid is 0x%x, working on task %d \n, pthread_self(), *(int *)arg);sleep (1); }int main() {unsigned int work_id[10];int i 0;system_init();/* 等待线程运行 */sleep(1);for(; i10; i){work_id[i] i;pool_add_work(my_process, work_id[i]);}/* 等待任务执行完毕 */sleep(5);return 0; } Linux 上编译后运行结果 参考自blog.csdn.net/zouxinfox/article/details/3560891 你的支持就是我的动力 转载请注明出处谢谢
http://www.zqtcl.cn/news/983374/

相关文章:

  • 上海建设项目环保验收公示网站两新支部网站建设
  • 网站开发移动端网络系统软件应用与维护
  • 浙江网站建设营销网站后台管理系统一般用户名是什么
  • 网站 空间 租用wordpress搬家需要修改
  • 做网站推广怎么找客户网站换空间 seo
  • ipad网站开发seo哪家强
  • 昆明网站建设猫咪科技公司资料模板
  • 网站系统开发做网站需要填什么
  • 网站的数据库丢失建筑素材网
  • 个人网站做短视频pathon能做网站开发吗
  • 客户网站制作管理系统网站程序 wap pc 同步
  • 天津手动网站建设调试百度医院网站建设
  • ppt网站源码今天哈尔滨最新通告
  • asp网站乱码广州制作网页设计
  • 调用别人网站的数据库如何开网店卖自己的东西
  • 个人网站做影视网站开发学什么专业
  • 企业名称注册查询官网入口免费seo网站推广
  • 浙江门户网站建设公司个体工商户查询
  • 做网站的注意点赛事竞猜网站开发
  • 现在流行用什么语言做网站ppt设计教程网
  • 高端网站哪种好培训机构不退钱最怕什么举报
  • 青岛个人建站模板wordpress没有链接
  • 网上学习网站有哪些厦门城乡建设局网站
  • 怎样创建网站快捷方式个人制作一个网站的费用
  • 恒信在线做彩票的是什么样的网站软件开发流程管理
  • 网站服务器地址在哪里看艺术学校网站模板
  • 郑州中心站网站建设价格标准新闻
  • 电子商务网站管理互联网营销师主要做什么
  • 门户网站指的是什么凯里网络公司建设网站
  • 网站接入服务商查询0建设营销型网站步骤