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

赚钱做任务的网站有哪些宝山青岛网站建设

赚钱做任务的网站有哪些,宝山青岛网站建设,网站的几种提交方式,企业网站营销实现方式解读条件变量 当一个线程互斥地访问某个变量时,它可能发现在其它线程改变状态之前,它什么也做不了。例如一个线程访问队列时,发现队列为空,它只能等待,直到其它线程将一个节点添加到队列中。这种情况就需要用到条件变量。…

条件变量

  • 当一个线程互斥地访问某个变量时,它可能发现在其它线程改变状态之前,它什么也做不了。
  • 例如一个线程访问队列时,发现队列为空,它只能等待,直到其它线程将一个节点添加到队列中。这种情况就需要用到条件变量。

同步概念与竞态条件

  • 同步:在保证数据安全的前提下,让线程能够按照某种特定的顺序访问临界资源从而有效避免饥饿问题,叫做同步
  • 竞态条件:因为时序问题,而导致程序异常,我们称之为竞态条件。在线程场景下,这种问题也不难理解。
  • 互斥保证了安全性,但保证安全性的同时不一定能够安全可靠,同步主要是在保证安全性的情况下令线程调度更加高效可靠

条件变量函数

条件变量是用来进行线程同步的特性,内部要维护调度队列。

初始化

int pthread_cond_init(pthread_cond_t *restrict cond,const pthread_condattr_t *restrict attr);
// 参数:
// cond: 要初始化的条件变量
// attr: NULL

销毁

int pthread_cond_destroy(pthread_cond_t *cond)

等待条件满足

int pthread_cond_wait(pthread_cond_t *restrict cond,pthread_mutex_t *restrict mutex);
// 参数:
// cond: 要在这个条件变量上等待
// mutex: 互斥量,后面详细解释

唤醒等待

int pthread_cond_broadcast(pthread_cond_t *cond);//唤醒所有
int pthread_cond_signal(pthread_cond_t *cond);//唤醒一个

简单案例

  • 我们先使用PTHREAD_COND/MUTEX_INITIALIZER进行测试,对其他细节暂不追究
  • 然后将接口更改为使用pthread_cond_init/pthread_cond_destroy的方式,方便后续进行封装
#include <iostream>
#include <string.h>
#include <unistd.h>
#include <pthread.h>pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;void *active( void *arg ) {std::string name = static_cast<const char*>(arg);while (true){pthread_mutex_lock(&mutex);pthread_cond_wait(&cond, &mutex);std::cout << name << " 活动..." << std::endl;pthread_mutex_unlock(&mutex);}
}int main( void ) {pthread_t t1, t2;pthread_create(&t1, NULL, active, (void*)"thread-1");pthread_create(&t2, NULL, active, (void*)"thread-2");sleep(3); // 可有可无,这里确保两个线程已经在运行while(true) {// 对比测试// pthread_cond_signal(&cond); // 唤醒一个线程pthread_cond_broadcast(&cond); // 唤醒所有线程sleep(1);}pthread_join(t1, NULL);pthread_join(t2, NULL);
}

运行结果示例

$./cond
thread-1 活动...
thread-2 活动...
thread-1 活动...
thread-2 活动...

条件变量使用规范

等待条件代码

pthread_mutex_lock(&mutex);
while (条件不满足)pthread_cond_wait(cond, mutex);
修改条件代码
pthread_mutex_unlock(&mutex);

给条件发送信号代码

pthread_mutex_lock(&mutex);
设置条件为真signal(cond);
pthread_mutex_unlock(&mutex);

文章转载自:

http://lRoBKWhT.hhpbj.cn
http://b4Q2yZzX.hhpbj.cn
http://D298Csfm.hhpbj.cn
http://3KkpnhDM.hhpbj.cn
http://reANXxpt.hhpbj.cn
http://29CiHC2f.hhpbj.cn
http://0jHpkL1F.hhpbj.cn
http://DyAIhCsp.hhpbj.cn
http://Hhhb1hsq.hhpbj.cn
http://lDrxmWUx.hhpbj.cn
http://ud2jItlf.hhpbj.cn
http://GO9OLUJu.hhpbj.cn
http://JafTAxB1.hhpbj.cn
http://jV8iSjaZ.hhpbj.cn
http://aLai7jsT.hhpbj.cn
http://5MzIoUhk.hhpbj.cn
http://JP2KSPaA.hhpbj.cn
http://r2d6X3xG.hhpbj.cn
http://YgzX8PLp.hhpbj.cn
http://UhLjIw2Q.hhpbj.cn
http://xuwQkZec.hhpbj.cn
http://D7gBmScm.hhpbj.cn
http://XqLOkg95.hhpbj.cn
http://pQXtDZMf.hhpbj.cn
http://08Krn3ph.hhpbj.cn
http://rQgbVNI8.hhpbj.cn
http://85doJJBw.hhpbj.cn
http://KTSNwTlm.hhpbj.cn
http://KN5doVKi.hhpbj.cn
http://iuPkqM7p.hhpbj.cn
http://www.dtcms.com/wzjs/659192.html

相关文章:

  • 免费3d模型素材网站做网站教程免费
  • 怎么做网站的界面亚i洲人页码24林妹妹
  • 曲靖网站推广网站多少钱一年
  • 购物网站服务器硬件配置怎么查看网站备案进度
  • 长春建设平台网站的公司哪家好苏州专业做网站的公司有哪些
  • 自身网站的平台建设外包公司
  • 长沙网站公司网站建设虚拟主机怎么设计网站吗
  • 临沂网站建设有哪些类似源码之家的网站
  • wordpress怎么更改语言设置seo优化流程
  • 杭州做网站吧网站运营托管咨询
  • 销售类网站开发架构微网站模板制作教程
  • 拖拽式可视化编辑网站网站备案期间做网页
  • 网站上怎么做推广深圳企业高端网站建设
  • 免费asp企业网站源码我开网店一天亏几百
  • 阿里云的轻量服务器怎么做网站公司微网站建设
  • 响水哪家专业做网站网页设计作业成品免费下载
  • 中国建设工程协会网站电话阿里巴巴做网站找谁
  • 电子商务网站建设的步骤一般沈阳男科医院哪家有名
  • 小轲网站建设网上购物商城网站
  • 做视频教育网站网站页面设计要求
  • 网站设计公司报价个人网页设计首页
  • 做好网站建设智能产品开发与应用
  • 高校网站一般采用什么网页布局不收费的小说网站排名
  • 旅游网站的建设方式国外做糖网站
  • 网站建设 开办费重庆市住房和城乡建设厅官网
  • 导入表格做地图中热力网站网站流量分析怎么做
  • 电子产品网站建设wordpress副标题函数
  • 重庆建站程序用asp做网站的流程
  • 做网站要多少钱电子商务网站建设管理实训报告
  • 密云青岛网站建设ppt 做的最好的网站有哪些