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

想做电商怎么注册外贸建站优化

想做电商怎么注册,外贸建站优化,研发和开发的区别,深圳seo优化服务商pthread 读写锁使用 读写锁:提供了一种高效的机制来控制对共享资源的访问。允许多个线程同时读取共享资源,但只允许一个线程独占地写入访问。适用于读取远远超过写入的场景下,因为写入操作需要独占地访问资源,可能会影响读取操作…

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.h>pthread_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.15wanjia.com/news/52336.html

相关文章:

  • 做内部优惠券网站赚钱吗南昌百度搜索排名优化
  • 做网站延期交付了网站建设包括哪些内容
  • 做网站 买空间怎么做网址
  • 挂马网站教程百度搜索风云榜排行榜
  • 东莞响应式网站制作网优工程师前景和待遇
  • 建设一个视频网站个人免费开发app
  • 个人做百度云下载网站长沙百度关键词搜索
  • jsp网站开发关键技术优化大师win7
  • 怎么样给公司做网站国内哪个搜索引擎最好用
  • 网站建设有前途数字化营销怎么做
  • 宠物网站设计模块石狮seo
  • 阜蒙县建设小学校官方网站如何写好一篇软文
  • 自媒体专业搜索引擎优化面对哪些困境
  • 网站分析百度it教育培训机构排名
  • 建立门户网站的程序百度推广最近怎么了
  • 爱奇艺会员做任务送十天网站搜索引擎技术优化
  • 阿里网站建设湖南专业关键词优化
  • 做网站的服务器哪个系统好主要推广手段免费
  • 卖域名的网站哪些好网页设计模板素材图片
  • 做市场调查的网站免费阿里关键词排名查询
  • 十堰做网站最专业的公司人工智能培训师
  • 兰州科技公司有哪些品牌seo如何优化
  • 东莞网站建设服务公司怎么在百度免费推广
  • 快速建立平台网站开发建站教程详解广州新闻发布
  • 做网盘搜索网站长沙有实力的关键词优化价格
  • 嘉兴做外贸网站比较好的公司免费网站自助建站系统
  • 天长两学一做网站最新的全国疫情数据
  • 网站打开速度太慢搜索引擎网站优化和推广方案
  • 怎么用polylang做网站凡科小程序
  • 做一个小说阅读网站怎么做网络营销课程个人总结3000字