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

牛视频网站建设创业项目排行榜前十名

牛视频网站建设,创业项目排行榜前十名,wordpress删除用户,安徽网站seo目录 条件变量基本原理 初始化条件变量#xff1a;pthread_cond_init 等待条件变量 #xff1a;pthread_cond_wait 唤醒所有等待线程#xff1a;pthread_cond_broadcast 销毁条件变量#xff1a;pthread_cond_destroy 示例代码 条件变量基本原理 条件变量#xff08…目录 条件变量基本原理 初始化条件变量pthread_cond_init 等待条件变量 pthread_cond_wait 唤醒所有等待线程pthread_cond_broadcast 销毁条件变量pthread_cond_destroy 示例代码 条件变量基本原理 条件变量Condition Variable是多线程编程中用于线程同步的一种机制它允许线程在某个条件满足时被唤醒。         条件变量通常与互斥锁配合使用。线程在检查某个条件是否满足之前先获取互斥锁以保护共享资源。如果条件不满足线程会释放互斥锁并在条件变量上等待。当其他线程修改了共享资源使得条件满足时它会通知在该条件变量上等待的线程。等待的线程被唤醒后会重新获取互斥锁然后检查条件是否真的满足因为可能存在虚假唤醒即线程被唤醒但条件实际上并未满足。 初始化条件变量pthread_cond_init 函数原型 int pthread_cond_init(pthread_cond_t *cond, const pthread_condattr_t *attr); 功能初始化一个条件变量。参数 cond指向要初始化的条件变量的指针。attr用于指定条件变量的属性通常设为 NULL 使用默认属性。 返回值成功时返回 0失败时返回非零错误码。 等待条件变量 pthread_cond_wait 函数原型 int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex); 功能使调用线程在条件变量 cond 上等待。调用该函数前线程必须已经获取了互斥锁 mutex。函数会自动释放互斥锁并将线程置于等待状态直到条件变量被其他线程通过 pthread_cond_signal 或 pthread_cond_broadcast 唤醒。唤醒后线程会重新获取互斥锁。参数 cond指向要等待的条件变量的指针。mutex指向与条件变量关联的互斥锁的指针。 返回值成功时返回 0失败时返回非零错误码。 唤醒一个等待线程pthread_cond_signal 函数原型 int pthread_cond_signal(pthread_cond_t *cond); 功能唤醒在条件变量 cond 上等待的一个线程。如果有多个线程在等待具体唤醒哪个线程是由系统决定的。参数cond指向要操作的条件变量的指针。返回值成功时返回 0失败时返回非零错误码。 唤醒所有等待线程pthread_cond_broadcast 函数原型 int pthread_cond_broadcast(pthread_cond_t *cond); 在条件变量 cond 上等待的所有线程。参数cond指向要操作的条件变量的指针。返回值成功时返回 0失败时返回非零错误码。 销毁条件变量pthread_cond_destroy 函数原型 int pthread_cond_destroy(pthread_cond_t *cond); 功能销毁一个已初始化的条件变量释放相关资源。在销毁条件变量之前应确保没有线程在该条件变量上等待。参数cond指向要销毁的条件变量的指针。返回值成功时返回 0失败时返回非零错误码。 示例代码 #include stdio.h #include stdlib.h #include pthread.hpthread_mutex_t mutex PTHREAD_MUTEX_INITIALIZER; pthread_cond_t cond PTHREAD_COND_INITIALIZER; int ready 0;void* waiter(void* arg) {pthread_mutex_lock(mutex);while (!ready) {printf(Waiting for condition...\n);pthread_cond_wait(cond, mutex);}printf(Condition met. Continuing...\n);pthread_mutex_unlock(mutex);return NULL; }void* signaler(void* arg) {pthread_mutex_lock(mutex);ready 1;printf(Setting condition...\n);pthread_cond_signal(cond);pthread_mutex_unlock(mutex);return NULL; }int main() {pthread_t thread1, thread2;pthread_create(thread1, NULL, waiter, NULL);pthread_create(thread2, NULL, signaler, NULL);pthread_join(thread1, NULL);pthread_join(thread2, NULL);pthread_mutex_destroy(mutex);pthread_cond_destroy(cond);return 0; } 代码说明 waiter 线程获取互斥锁后检查 ready 条件。如果 ready 为 0它会调用 pthread_cond_wait 等待条件变量并释放互斥锁。signaler 线程获取互斥锁设置 ready 为 1然后调用 pthread_cond_signal 唤醒 waiter 线程最后释放互斥锁。waiter 线程被唤醒后重新获取互斥锁检查 ready 条件发现条件满足后继续执行。最后主线程等待两个线程完成并销毁互斥锁和条件变量。
http://www.dnsts.com.cn/news/81576.html

相关文章:

  • 网站做换肤农资网站建设
  • 手机网站免费建设平台做外汇哪个网站看外国消息
  • 专门做评论的网站浙江高端网站建设
  • 做平台的网站网站开发人员是什么
  • 托管网站费用青岛公交优化
  • 手机壁纸网站源码北京网站建设公司收购
  • 提高网站可用性的策略有哪些聊城企业做网站
  • 提供建议的网站模板深圳营销策划
  • 做图网站有哪些内容山东学生做自我评价的网站
  • 电子商务网站建设的一般过程有没有做网站的电话
  • 如何在记事本中做网站链接seo整站优化费用
  • 品牌排行榜哪个网站更权威响应式网站尺寸节点
  • 网站如何被百度收入四川城乡建设厅官方网站
  • 天津市建设协会网站2019年最好的国外vps
  • 自建网站需要哪些技术做盘石信用认证网站
  • 网站建设公司选哪家vs做网站通过e浏览器
  • 徐州网站开发公司电话微信接口文档
  • 网站排名优化在线培训wordpress添加微博
  • 一个空间怎么放2个网站泰国网站建设
  • phpcms网站模板海报自动设计网站
  • 哈尔滨微网站建设公司哪家好嘉兴做网站的公司有哪些
  • 网上工商营业注册登记网站优化排名资源
  • 如何做织梦手机网站ui培训机构排名前十
  • 网站建设的公司收费广告网站怎么设计制作
  • 外国网站打开很慢孝感网站开发的公司
  • 西安做网站优化没有网站的域名
  • 网站建设的功能需求分析策划书长沙百度搜索网站排名
  • 公司做网站开发流程成品网站定制
  • 3d模型资源哪个网站比较好网站与网页设计教程
  • 网站开发用免费十大软件app