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

网站购物车建设外链在线生成

网站购物车建设,外链在线生成,wordpress导入doc,售后网站用什么模板pthread 读写锁使用 读写锁#xff1a;提供了一种高效的机制来控制对共享资源的访问。允许多个线程同时读取共享资源#xff0c;但只允许一个线程独占地写入访问。适用于读取远远超过写入的场景下#xff0c;因为写入操作需要独占地访问资源#xff0c;可能会影响读取操作…pthread 读写锁使用 读写锁提供了一种高效的机制来控制对共享资源的访问。允许多个线程同时读取共享资源但只允许一个线程独占地写入访问。适用于读取远远超过写入的场景下因为写入操作需要独占地访问资源可能会影响读取操作的性能。 pthread_rwlock_init 函数原型 int pthread_rwlock_init(pthread_rwlock_t *rwlock, const pthread_rwlockattr_t *attr);rwlock指向要初始化的读写锁对象的指针。attr可选的指向读写锁属性对象的指针可以为 NULL。返回值成功返回 0失败返回错误代码。 用于初始化读写锁对象。 使用读写锁时应该先初始化再使用最后再销毁。 pthread_rwlock_destroy 函数原型 int pthread_rwlock_destroy(pthread_rwlock_t *rwlock);rwlock指向要销毁的读写锁对象的指针。 用于销毁一个读写锁对象释放相关的资源。 销毁读写锁之前要确保没有任何线程正在持有该读写锁否则会导致未定义的结果。 pthread_rwlock_rdlock 函数原型 int pthread_rwlock_rdlock(pthread_rwlock_t *rwlock);rwlock: 指向要获取的读写锁对象的指针。 用于获取读取锁。如果当前没有其他线程持有该锁对象的写入锁则该函数成功返回0并立即返回否则该函数将阻塞等待直到写入操作完成并且当前线程可以安全地读取共享资源。 允许多个线程同时读取共享资源但不允许写入操作。 pthread_rwlock_rwlock 函数原型 int pthread_rwlock_wrlock(pthread_rwlock_t *rwlock);rwlock: 指向要获取的读写锁对象的指针。 用于获取写入锁如果当前没有其他线程持有该锁对象的任何锁则该函数成功返回0并立即返回否则该函数将阻塞等待直到其他线程释放该锁然后当前线程可以独占地修改共享资源。 pthread_rwlock_unlock 函数原型 int pthread_rwlock_unlock(pthread_rwlock_t *rwlock);rwlock: 指向要释放的读写锁对象的指针。 释放指定的读写锁对象的读取锁或写入锁。如果当前线程没有持有该锁则该函数的行为是未定义的。 示例 以下示例演示了两个线程同时读取一个变量一个线程独占地修改变量 #include stdio.h #include string.h #include pthread.hpthread_rwlock_t g_rwlock;void* thread1_func(void* arg) {int *var (int*)arg;// 获取读取锁pthread_rwlock_rdlock(g_rwlock);printf(thread1 read var is %d\n, *var);// 释放读取锁pthread_rwlock_unlock(g_rwlock);return NULL; }void* thread2_func(void* arg) {int *var (int*)arg;// 获取读取锁pthread_rwlock_rdlock(g_rwlock);printf(thread2 read var is %d\n, *var);// 释放读取锁pthread_rwlock_unlock(g_rwlock);return NULL; }void* thread3_func(void* arg) {int *var (int*)arg;// 获取写入锁pthread_rwlock_wrlock(g_rwlock);*var 100;printf(thread3 write var is %d\n, *var);// 释放写入锁pthread_rwlock_unlock(g_rwlock);return NULL; }int main() {// 初始化读写锁pthread_rwlock_init(g_rwlock, NULL);// 创建线程int var 10;pthread_t th1;pthread_t th2;pthread_t th3;pthread_create(th1, NULL, thread1_func, var);pthread_create(th2, NULL, thread2_func, var);pthread_create(th3, NULL, thread3_func, var);// 等待线程结束pthread_join(th1, NULL);pthread_join(th2, NULL);pthread_join(th3, NULL);// 销毁读写锁pthread_rwlock_destroy(g_rwlock);return 0; }
http://www.hkea.cn/news/14499790/

相关文章:

  • 公司展示网站费用手机网站域名解析
  • 电子商务网站建设与运营方向陕西建设交通集团招聘信息网站
  • 成都专业网站推广做网站排名seo
  • wordpress查询成绩网站站内关键词优化
  • 域名和网站名不一样软件工程师证书报考要求
  • 做自己的网站需要什么工作简历模板电子版免费
  • 方圆网通网站建设关键词排名优化易下拉系统
  • 网站 空间 购买免费网站空间可访问
  • 西安做网站建设网页设计心得体会2篇
  • 网站维护一般多长时间商务网站的特点
  • 搭建企业网站的步骤jsp怎么做网站
  • 河源网站建设多少钱企业黄页到哪里买
  • wordpress前端图片上传seo网络专员招聘
  • 沧州省建设厅网站搜狗搜索排名优化
  • html网站开发需要什么软件网站建设怎么学
  • 备案网站名称有什么用PHP网站建设的基本流程
  • 网站开发培训深圳广州易网网站建设
  • 大型网站外链是怎么建设的一键生成海报的网站
  • 线上网站开发相关书籍wordpress改模版
  • 网站建设和技术支持住房和城乡建设部网站干部学院
  • 加强网站人才建设十堰网站建设培训
  • 一定要用c 做网站吗周口城乡建设网站
  • 一个专门做字画的网站wordpress 禁止过滤
  • 网站恶意做评论梅县区住房和城乡规划建设局官方网站
  • 创建个人网站巨量关键词搜索查询
  • 网站icp备案证书wordpress通知邮件美化
  • 网站承建商有哪些如何 做镜像网站
  • 用什么软件快速做网站福田莲花北网站建设
  • 免费网站设计 优帮云优质企业网站建设
  • 网站开发实习计划模板在服务器网站上做跳转