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

wordpress网站怎么打开很慢上海详细地址大全

wordpress网站怎么打开很慢,上海详细地址大全,广州地址设计网站,wordpress网站样式Linux——线程同步 读写锁 目录 一、基本概念 1.1 读写锁的基本概念 1.2 读写锁的优点 1.3 读写锁的实现 1.4 代码实现 一、基本概念 线程同步中的读写锁(Read-Write Lock),也常被称为共享-独占锁(Shared-Exclusive Lock&a…

Linux——线程同步 读写锁

目录

一、基本概念

1.1 读写锁的基本概念

1.2 读写锁的优点

1.3 读写锁的实现 

1.4 代码实现


一、基本概念

线程同步中的读写锁(Read-Write Lock),也常被称为共享-独占锁(Shared-Exclusive Lock),是一种用于控制对共享资源的并发访问的同步机制。它允许多个线程同时读取共享资源,但只允许一个线程写入共享资源。读写锁的设计目的是在多线程环境中提高并发性能,特别是在读操作远多于写操作的场景中。读写锁与互斥锁区别就是读锁和写锁是分开的

1.1 读写锁的基本概念

读写锁通常由两个锁组成:

  1. 读锁(Shared Lock)允许多个线程同时获取读锁,这意味着多个线程可以同时读取共享资源。当至少有一个线程持有读锁时,其他线程不能获取写锁。

  2. 写锁(Exclusive Lock)只允许一个线程获取写锁,这意味着在任何时刻只有一个线程可以写入共享资源。当线程持有写锁时,其他线程既不能获取读锁也不能获取写锁。

1.2 读写锁的优点

  1. 提高并发性:在读取操作远多于写入操作的情况下,读写锁可以显著提高程序的并发性能,因为它允许多个线程同时读取共享资源。

  2. 避免写饥饿:由于写锁的优先级通常高于读锁,可以避免长时间只进行读操作而使写操作饥饿的情况。

  3. 灵活性:读写锁提供了一种灵活的机制来控制对共享资源的访问,可以根据实际需要选择获取读锁或写锁。

1.3 读写锁的实现 

pthread_rwlock_init 初始化读写锁

pthread_rwlock_rdlock 获取(锁定)一个读写锁以进行读取。

pthread_rwlock_wrlock 获取(锁定)一个读写锁以进行写入。

pthread_rwlock_unlock 释放一个读写锁 解锁

pthread_rwlock_destroy 销毁一个读写锁

1.4 代码实现

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <pthread.h>pthread_rwlock_t lock;//定义了一个变量lockvoid* fun1(void* arg)//模拟读同时进行和2
{for(int i=0;i<20;i++){pthread_rwlock_rdlock(&lock);printf("fun1 read start:   \n");sleep(1);printf("fun1 read end:    \n");pthread_rwlock_unlock(&lock);sleep(1);}
}void* fun2(void* arg)//读
{for(int i=0;i<10;i++){pthread_rwlock_rdlock(&lock);printf("fun2 read start:   \n");sleep(1);printf("fun2 read end:    \n");pthread_rwlock_unlock(&lock);sleep(1);}
}void* fun3(void* arg)//写 只允许一个进行
{for(int i=0;i<8;i++){pthread_rwlock_wrlock(&lock);sleep(1);printf("    fun3 write start:   \n");sleep(1);printf("    fun3 write end:     \n");pthread_rwlock_unlock(&lock);sleep(1);}
}
int main()
{pthread_rwlock_init(&lock,NULL);pthread_t id1,id2,id3;pthread_create(&id1,NULL,fun1,NULL);pthread_create(&id2,NULL,fun2,NULL);pthread_create(&id3,NULL,fun3,NULL);pthread_join(id1,NULL);pthread_join(id2,NULL);pthread_join(id3,NULL);pthread_rwlock_destroy(&lock);
}

读写锁允许多个线程同时读取共享资源,但只允许一个线程写入共享资源。

  • 这里定义了一个全局的读写锁lock,用于控制对共享资源的访问。

  • 这段代码通过使用读写锁来同步多个线程对共享资源的访问。读线程可以同时访问共享资源,而写线程则需要独占访问。通过这种方式,可以有效地提高程序的并发性能,特别是在读操作远多于写操作的场景中。


文章转载自:

http://eXmF8U8d.cwqLn.cn
http://qt538izi.cwqLn.cn
http://urkv1olA.cwqLn.cn
http://bBwn9Bl6.cwqLn.cn
http://MqqOJMeC.cwqLn.cn
http://yrTQMYIs.cwqLn.cn
http://TFOH7ZEO.cwqLn.cn
http://TUqr45oy.cwqLn.cn
http://UmJgKnlZ.cwqLn.cn
http://TEdbZ3GY.cwqLn.cn
http://dduu8y7q.cwqLn.cn
http://nLK4Mzma.cwqLn.cn
http://y18ZSj8f.cwqLn.cn
http://eEUFZVoo.cwqLn.cn
http://IABVOfLD.cwqLn.cn
http://j1Q9SDnd.cwqLn.cn
http://Lo9zQz98.cwqLn.cn
http://t9o25mwE.cwqLn.cn
http://33Obev8t.cwqLn.cn
http://wLPVF38i.cwqLn.cn
http://ib0nBG27.cwqLn.cn
http://kLHw6XVA.cwqLn.cn
http://RZdtCS6p.cwqLn.cn
http://C7Hf8OuK.cwqLn.cn
http://3PWHRJcS.cwqLn.cn
http://ncgWIhxC.cwqLn.cn
http://oiQn74z2.cwqLn.cn
http://tGrFvRnW.cwqLn.cn
http://Vd9f4ens.cwqLn.cn
http://Lubd3BOX.cwqLn.cn
http://www.dtcms.com/wzjs/692300.html

相关文章:

  • 织梦怎么修改网站标题做公司网站的模板
  • seo wordpress主题齐三seo顾问
  • 德州网站有哪些营销手机系统安装
  • 无锡网站的优化那个网站能找到人
  • wordpress建立论坛网站个人网站可以做百度推广么
  • 织梦网站栏目是做什么用的宜春网站建设公司联系方式
  • 烟台外贸网站建设公司都匀网站制作公司
  • 南通市住房和建设局网站微信系统平台开发
  • 网站改版设计思路永久免费网址在线观看电视剧
  • 兰州微网站建设策划案模板
  • 品牌软文兰州seo优化
  • 网站与网页设计河南23个岗位无人报考
  • 四川建设网站首页wordpress 科技类主题
  • 公司网站建设ihanshi网站制作视频教程下载百度云
  • 安徽工程建设信息网新网站网站的推广和宣传方式
  • 论mvc框架在网站开发的应用友情链接多少钱一个
  • 如何用dw做网站首页浙江建设继续教育网站首页
  • 太原建站一条龙网站建设包括哪些项目
  • 帝国生成网站地图外贸自建站源码
  • 郑州集团网站建设宁波网络推广渠道有哪些
  • 华为网站的建设建议书wordpress 如果
  • 小型企业网站建设报告模拟组建过程国家对网站建设补补贴
  • 做网站公司运营部青岛网站建设定制开发
  • 个人网站注册平台温州网站建设华一
  • 做二手房网站有哪些wordpress排序优化
  • 同学录网站开发实现基本要求聚名网域名综合查询
  • 南宁做网站培训下载织梦做网站软件
  • 厦门网站制作维护张家港那家做网站
  • 重庆物流公司网站建设listify wordpress
  • 青岛网站建设 新视点制作网站域名需要多少钱