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

优秀企业网站建设哪家服务好微信推广怎么做

优秀企业网站建设哪家服务好,微信推广怎么做,天津市建筑招标信息网,在线crm客户关系管理作用:防止多个线程同时对同一数据进行读写导致数据混乱,在读写这个数据前获取读写锁就行了 写写互斥,读写互斥,读读允许,同线程读写死锁 1.写写互斥 一个线程获取了写锁,另一个线程再获取写锁将会阻塞 2.读写互斥 一个…

作用:防止多个线程同时对同一数据进行读写导致数据混乱,在读写这个数据前获取读写锁就行了

写写互斥,读写互斥,读读允许,同线程读写死锁

1.写写互斥

 一个线程获取了写锁,另一个线程再获取写锁将会阻塞

2.读写互斥

一个线程获取了读锁,另一个线程再获取写锁时将阻塞,反之亦然

3.读读允许

在其他线程没获取写锁时,任意数量的线程都可以获取读锁

4.同线程读写死锁

2的衍生

函数:

//定义且初始化互斥量
pthread_rwlock_t rwlock = PTHREAD_RWLOCK_INITIALIZER;

获取读锁

pthread_rwlock_rdlock(&rwlock);

获取写锁

pthread_rwlock_wrlock(&rwlock); 

释放读锁

pthread_rwlock_unlock(&rwlock);

 常用场景

#include "stdio.h"
#include "unistd.h"
#include "pthread.h"
#include "string.h"//定义且初始化互斥量
pthread_rwlock_t rwlock = PTHREAD_RWLOCK_INITIALIZER;//线程1
void* task1(void* p)
{printf("thread %d getting rdlock\n", pthread_self());pthread_rwlock_rdlock(&rwlock);//获取读锁printf("thread %d got rdlock!\n", pthread_self());sleep(5);pthread_rwlock_unlock(&rwlock);//释放读锁printf("thread %d release rdlock\n", pthread_self());return NULL;
}int main()
{pthread_t thread;pthread_create(&thread, NULL, task1, NULL);pthread_create(&thread, NULL, task1, NULL);pthread_create(&thread, NULL, task1, NULL);//开启三个线程sleep(1);//等待子线程先获取读写锁printf("thread %d getting wrlock\n", pthread_self());pthread_rwlock_wrlock(&rwlock);printf("thread %d got wrlock!\n", pthread_self());return 0;
}

运行结果

可以看到主线程在三个子线程的读锁释放后才成功获取写锁

写饥饿现象:

当持续不断的有新的线程获取读锁又释放,就可能会出现一个现象,因为读读允许,所有可能会很长时间一直有不同的线程正在读,这样写入线程一直无法获取到写锁,这就是写饥饿,可以通过初始化设置将该读写锁设置为:有线程在写阻塞时新的读锁获取也阻塞。

这样就不会有新的线程获取读锁,等当前存在的读锁都释放后写线程就得以运行。

pthread_rwlockattr_t rwlockattr;//读写锁属性变量
pthread_rwlockattr_init(&rwlockattr);//初始化读写锁属性变量
pthread_rwlockattr_setkind_np(&rwlockattr,   PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,
);//初始化读写锁属性调度策略设为写优先
pthread_rwlock_t rwlock;//读写锁
pthread_rwlock_init(&rwlock, &rwlockattr);//读写锁以读写锁属性变量初始化
http://www.dtcms.com/wzjs/147443.html

相关文章:

  • WordPress会员注册去掉邮箱seo网站地图
  • 南联做网站百度首页百度一下
  • html table网站铜川网站seo
  • 黑客网站网址入口中文搜索引擎有哪些
  • 我的个人网页广州seo优化电话
  • 网站模板在线演示怎么做网络营销就业方向和前景
  • 泉州做网站百度灰色关键词排名代做
  • 文化旅游做的好的网站seo是怎么优化推广的
  • wordpress云建站男生最喜欢的浏览器推荐
  • wordpress如何导出主题seo策略有哪些
  • 铜川网站建设安卓优化大师官网
  • 祥云平台技术支持双语网站自助建站系统个人网站
  • 网站申请备案要多久郑州网络营销学校
  • 高级营销网站建设只需1200元互动营销经典案例
  • 如何为网站做优化重庆seo论
  • 网站怎么做外部链接数字营销工具
  • 网站怎么进行网络推广友情链接的作用大不大
  • 免费ppt图片素材库优化培训课程
  • 广西专业建网站西安seo整站优化
  • 微信授权登录网站退出怎么做网站备案查询工信部官网
  • 外包做网站公司有哪些近期国家新闻
  • 怎么做自己的发卡网站6综合权重查询
  • 网站建设计划方案模板下载谷歌广告上海有限公司官网
  • 建设项目社会招标上那个网站裂变营销五种模式十六种方法
  • 流行的网站开发语言百度广告优化
  • 东城做企业网站多少钱怎样制作属于自己的网站
  • 成都专业做网站公司有哪些腾讯广告推广平台
  • 做网盘搜索网站合法吗上海营销seo
  • 嘉兴做网站seo某产品网络营销推广方案
  • 流程网站展示型网页设计公司