本地电脑静态网站建设哪个网址可以看免费的

diannao/2026/1/20 2:44:30/文章来源:
本地电脑静态网站建设,哪个网址可以看免费的,做网站的图片字虚,国航网站建设一.条件变量 条件变量是用来等待线程而不是上锁的#xff0c;条件变量通常和互斥锁一起使用。条件变量之所以要和互斥锁一起使用#xff0c;主要是因为互斥锁的一个明显的特点就是它只有两种状态#xff1a;锁定和非锁定#xff0c;而条件变量可以通过允许线程阻塞和等待另…   一.条件变量 条件变量是用来等待线程而不是上锁的条件变量通常和互斥锁一起使用。条件变量之所以要和互斥锁一起使用主要是因为互斥锁的一个明显的特点就是它只有两种状态锁定和非锁定而条件变量可以通过允许线程阻塞和等待另一个线程发送信号来弥补互斥锁的不足所以互斥锁和条件变量通常一起使用。 当条件满足的时候线程通常解锁并等待该条件发生变化一旦另一个线程修改了环境变量就会通知相应的环境变量唤醒一个或者多个被这个条件变量阻塞的线程。这些被唤醒的线程将重新上锁并测试条件是否满足。一般来说条件变量被用于线程间的同步当条件不满足的时候允许其中的一个执行流挂起和等待。 条件变量中常用的API 1).条件变量类型为:pthread_cond_t 类似互斥变量条件变量的初始化有两种方式: 静态pthread_cond_t myconPTHREAD_COND_INITIALIZER; 动态通过调用pthread_cond_init函数函数原型为 [cpp] view plain copy 静态pthread_cond_t myconPTHREAD_COND_INITIALIZER;   cond环境变量. attr条件变量属性. 成功返回0失败返回错误码. 2).条件变量摧毁函数pthread_cond_destroy(mycond); [cpp] view plain copy int pthread_cond_destroy(pthread_cond_t *cond);   成功返回0失败返回错误码. 摧毁所指定的条件变量同时将会释放所给它分配的资源。调用该函数的进程也并不等待在参数所指定的条件变量上。 3).条件变量等待函数。pthread_cond_wait(mycond,mylock); [cpp] view plain copy int pthread_cond_timedwait(pthread_cond_t *restrict cond,              pthread_mutex_t *restrict mutex,              const struct timespec *restrict abstime);       int pthread_cond_wait(pthread_cond_t *restrict cond,              pthread_mutex_t *restrict mutex);   cond条件变量 mutex互斥锁 pthread_cond_wait和pthread_cond_timedwait的区别 pthread_cond_timedwait函数类型与函数pthread_cond_wait,区别在于如果达到或是超过所引用的参数*abstime,它将结束并返回错误ETIME. timespec [cpp] view plain copy typedef struct timespec      {         time_t     tv_sec;    //! 秒         long     tv_nsex;    //! 毫秒      }timespec_t;   当时间超过之前预设定的时会返回错误. 4).条件变量通知函数pthread_cond_signal和pthread_cond_broadcast [cpp] view plain copy int pthread_cond_broadcast(pthread_cond_t *cond);   int pthread_cond_signal(pthread_cond_t *cond);   pthread_cond_signal和pthread_cond_broadcast的区别 pthread_cond_signal只唤醒一个在相同条件变量中阻塞的线程将会被唤醒 pthread_cond_broadcast唤醒等待队列中的所有线程 二.一个关于互斥锁和条件变量的栗子 栗子用互斥锁和条件变量的概念实现一个简单的生产者和消费者的模型。 生产者和消费者模型 1).满足互斥与同步条件用互斥锁和条件变量实现 2).多个生产者和消费者生产者和生产者属于互斥关系生产者和消费者属于互斥和同步关系消费者和消费者属于竞争关系需要互斥锁 3).生产者和消费者模型中存在如下几种关系和角色3种关系2种角色1种交换媒介(一般是一段内存) 下例以单生产者和单消费者交换媒介为链表实现的生产者消费者模型 [cpp] view plain copy procon.c      #includestdio.h   #includestdlib.h   #includeassert.h   #includepthread.h      typedef struct LinkNode   {       int data;       struct LinkNode *next;   }Node;      pthread_mutex_t mylockPTHREAD_MUTEX_INITIALIZER;   pthread_cond_t mycondPTHREAD_COND_INITIALIZER;      Node *CreatNode(int data)   {       Node *NewNode(Node *)malloc(sizeof(Node));       if(NULL  NewNode)       {           perror(malloc);           return NULL;       }       NewNode-datadata;       NewNode-nextNULL;       return NewNode;   }      void InitLink(Node **head)   {       *headCreatNode(0);   }      int IsEmpty(Node *head)   {       assert(head);       if(head-next)           return 0;    //not empty       else           return 1;    //empty   }      void PushFront(Node *head,int data)   {       assert(head);       Node *NewNodeCreatNode(data);       NewNode-nexthead-next;       head-nextNewNode;   }      void PopFront(Node *head,int *data)   {       assert(data);       assert(head);       if(IsEmpty(head))       {           printf(empty link\n);           return ;       }       Node *delhead-next;       *datadel-data;       head-nextdel-next;       free(del);       delNULL;   }      void DisplayLink(Node *head)   {       assert(head);       Node *curhead-next;       while(cur)       {           printf(%d ,cur-data);           curcur-next;       }       printf(\n);   }      void DestroyLink(Node *head)   {       int data0;       assert(head);       while(!IsEmpty(head))       {           PopFront(head,data);       }       free(head);   }      void *product_run(void *arg)   {       int data0;       Node *head(Node *)arg;       while(1)       {           usleep(100000);           datarand()%1000;           pthread_mutex_lock(mylock);           PushFront(head,data);           pthread_mutex_unlock(mylock);           pthread_cond_signal(mycond);           printf(product is done,data%d\n,data);       }   }      void *consumer_run(void *arg)   {       int data0;       Node *head(Node *)arg;       while(1)       {           pthread_mutex_lock(mylock);           while(IsEmpty(head))           {               pthread_cond_wait(mycond,mylock);           }           PopFront(head,data);           pthread_mutex_unlock(mylock);           printf(consumer is done,data%d\n,data);       }   }      void testprocon()   {       Node *headNULL;       InitLink(head);       pthread_t tid1;       pthread_t tid2;       pthread_create(tid1,NULL,product_run,(void *)head);       pthread_create(tid2,NULL,consumer_run,(void *)head);          pthread_join(tid1,NULL);       pthread_join(tid2,NULL);       DestroyLink(head);       pthread_mutex_destroy(mylock);       pthread_cond_destroy(mycond);      }   int main()   {       testprocon();       return 0;   }      Makefile   procon:procon.c       gcc -o $ $^ -lpthread   .PHONY:clean   clean:       rm -f procon   总结 条件变量用在某个线程需要在某种条件才去保护它将要操作的临界区的情况下从而避免了线程不断轮询检查该条件是否成立而降低效率的情况这是实现了效率提高。 希望对读者有帮助吧~~~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/90120.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

做设计在哪个网站找图片宝安画册设计公司

本节书摘来自华章出版社《R的极客理想—工具篇》一 书中的第2章,作者:张丹,更多章节内容可以访问云栖社区“华章计算机”公众号查看。 第2章 时间序列基础包 本章主要介绍了时间序列数据处理的3个工具包,帮助读者掌握时间序列在R语…

深圳企业推广网站金融类网站模板

HALLICs 应用领域 Applications 应用案例 雅欣为各个应用场景匹配专属HALL元器件 合作伙伴 Partners

营销软件网站云南建设厅网站首页

本文是cocos2dx移植android的第二篇教程,笔者深深感觉,cocos2dx移植android平台是永远的痛啊。。。下面讲一下笔者花费一个周研究的Mac OS下的cocos2dx3.2android配置首先要准备的东西(1)下载cocos2dx3.2 http://www.cocos2d-x.o…

纯html5网站源码wordpress侧边栏代码

【C#语言入门】10. 操作符详解(下) 四、各类操作符的示例 (T)x 强制类型转换符 //ushort的maxvalue是65535 uint x 65536; ushort y (ushort)x; Console.WriteLine(y);//结果为0类型转换 隐式(implicit)类型转换 不丢失精度的…

做网站的国标有哪些最常见的网络营销方式

众所周知,在Google play应用商店上架或更新应用时,开发者需要遵守谷歌的相关规定和政策,否则可能会导致审核不通过,甚至永久封号。 很多开发者在提交应用到谷歌Play商店或进行应用更新时,即便了解了Google Play商店的…

大酒店网站源代码做网站语言学什么

Spring Boot 使用Filter统一处理请求数据转换 背景知识Spring Boot Filter 使用场景 请求预处理技术实现1. 创建自定义Filter类2. 创建自定义请求包装器3. 注册Filter 背景知识 Spring Boot Filter 使用场景 身份验证和授权 场景描述: 在用户访问应用程序的敏感资源之前&…

做网站的外包公司wordpress 去掉p标签

目录 web271 web272-273 web274 web275 web276 为什么不用分析具体为什么能成功 ,后面会有几个专题 会对php框架进行更深入的了解 这里面会专门的研究 为什么能够实现RCE 前面作为初步的熟悉 首先知道一下他的框架 知道框架的风格 知道啥版本可以用什么来打 首先先不用太研…

创新网站建设工作室番禺建设网站平台

RF是做接口测试的一个非常方便的工具,我们只需要写好发送报文的脚本,就可以灵活的对接口进行测试。 做接口测试我们需要做如下工作: 1、拼接发送的报文 2、发送请求的方法 3、对结果进行判断 我们先按步骤实现,再进行RF操作的…

装饰公司营销网站建设win8怎么建设网站

见:GitHub - eHackyd/Java_JVM: Java虚拟机(JVM)框架的学习笔记

杭州网站建设方案服务公司邢台精品网站建设

UART协议驱动设计 在不通信时,发送高电平。发送信息时,应该首先发送起始位(1bit、低电平)。可以理解为告诉接收方,应该接收信息了。发送数据位,由于是串行通信,规定从低位开始发,最后到高位(协议规定信息位可以为 4、 5、 6、 7、 8)。校验位(1bit)。可以采用奇校验…

网站属性设置想自己开发一款软件

guava集合操作类的使用我目前正在为LibFX添加一项新功能,为此我创建了一些类似于Java Collections Framework的自定义集合。 我一直在寻找可以与之对抗的测试,并很高兴发现Google的Guava包含了我所需要的:一个庞大的测试套件,可以…

伊利网站建设评价企业微信商城

上周总结 根据系统生产环境的日志文件,写了个脚本统计最近使用我们系统的用户的手机型号以及系统,帮助聚焦主要测试的机型,以及系统类型 依然是根据时区不同对项目进行改造,还有一个开发好的接口需要下周联调 2024/3/3 晴…

网站申请微信支付网站与网络的区别

1 ROS存在的问题 一旦Ros Master主节点挂掉后,就会造成整个系统通信的异常,通信基于TCP实现,实时性差、系统开销大对Python3支持不友好,需要重新编译消息机制不兼容没有加密机制、安全性不高 2 ROS and ROS2架构对比 ROS和ROS2架构如下图所…

大连网站开发公司shepiguo中国有限公司官网

Docker的流行使得它成为开发者和运维人员不可或缺的工具。在本文中,将深入探讨如何在不同平台上安装和配置Docker,旨在为大家提供详尽的指南,确保他们能够顺利地使用这一强大的容器化工具。 Docker基础概念回顾 Docker利用容器技术&#xf…

网站开发工程师心得总结如何用dw制作简单网页

首先在设置界面可以看到很多快捷键,并支持将之前软件的快捷键习惯导入安卓开发中,默认的就是安卓开发的快捷键,所以基本不需要一些学习成本 双击shirf可以跳出查找界面 修改快捷键 按住ctrlshirftalt并用鼠标单击要添加代码的位置。就可以实现…

网站抽奖模板电子商务网站网络拓扑

大家好,我是向阳 AI横空出世后,不少行业受到了冲击。第一批因AI失业的人,也已经出现了! 他们是游戏设计师、原画设计师、服装设计师……社交媒体上,不断能看到这样的新闻:引入AI后,某游戏公司…

网站建设汇报一般公司网站的后台管理在哪

为什么80%的码农都做不了架构师?>>> 学习monkeyrunner,无奈怎么都无法启动activity,人家告诉我.hierarchyviewer这个工具可以,今天我就开始学习这个了,但愿有所帮助啊。http://www.xuebuyuan.com/2104811.…

做外单要上什么网站seo算法

常见的函数样式有4种&#xff0c;即在函数定义过程中函数的四种格式&#xff0c;他们也分别对应了四种调用方法&#xff1a; 1&#xff0c;无参无返 2&#xff0c;有参无返 3&#xff0c;无参有返 4&#xff0c;有参有返 示例&#xff1a; #include<bits/stdc.h> u…

免费发布信息网站wordpress win7 win10

转自 http://blog.csdn.net/shootyou/article/details/6093562 Nginx介绍和安装 一个简单的配置文件 模块介绍 常用场景配置 进阶内容 参考资料 Nginx介绍和安装 Nginx是一个自由、开源、高性能及轻量级的HTTP服务器及反转代理服务器&#xff0c; 其性能与IMAP/POP3代理服务器…

做海报挣钱的网站广东东莞职业技术学院

把数据放到一个泛型集合里&#xff0c;再把泛型集合里面的数据放到一个table中&#xff0c;设置好文件路径&#xff0c;然后进行文件读取&#xff0c;最后供用户下载。 数据导出放在一个按钮中就可以了 using System; using System.Collections.Generic; using System.Linq; us…