首页 > 其他分享 >读写锁

读写锁

时间:2023-02-23 16:23:42浏览次数:32  
标签:rwlock 加锁 int 读写 共享资源 pthread

介绍

#include <pthread.h>

int pthread_rwlock_init(pthread_rwlock_t *restrict rwlock,
                        const pthread_rwlockattr_t *restrict attr);

int pthread_rwlock_rdlock(pthread_rwlock_t *rwlock);
int pthread_rwlock_tryrdlock(pthread_rwlock_t *rwlock);

int pthread_rwlock_wrlock(pthread_rwlock_t *rwlock);
int pthread_rwlock_trywrlock(pthread_rwlock_t *rwlock);

int pthread_rwlock_destroy(pthread_rwlock_t *rwlock);
  • 对于 rdlock,如果读写锁是打开的,那么加锁成功;如果读写锁已经锁定了读操作,调用这个函数依然可以加锁成功,因为读锁是共享的

  • 对于 wrlock,如果读写锁是打开的,那么加锁成功;如果读写锁已经锁定了读操作或者锁定了写操作,调用这个函数的线程会被阻塞

简单使用

注意事项

  • 如果说程序中所有的线程都对共享资源做写操作,使用读写锁没有优势,和互斥锁是一样的,如果说程序中所有的线程都对共享资源有写也有读操作,并且对共享资源读的操作越多,读写锁更有优势。

标签:rwlock,加锁,int,读写,共享资源,pthread
From: https://www.cnblogs.com/cong0221/p/17148484.html

相关文章

  • 嵌入式开发学习之--IIC读写EEPROM(上)
    提示:本章主要学习IIC协议,了解其原理以及使用方法。文章目录​​前言​​​​一、IIC协议简介​​​​1.1、IIC物理层​​​​1.2、协议层​​​​1.2.1、I2C基本读写过程​......
  • Pandas从SQL型数据库读写数据
    Pandas读写SQL型数据库主要用到pandas.read_sql()和DataFrame.to_sql()两个函数。read_sql()read_sql主要有如下几个参数:sql:SQL命令字符串con:连接sql数据库的......
  • 阿里云RDS读写分离数据查询延迟
    环境:mysql数据库,上到阿里云RDS中。实现了读写分离。问题数据库中表更新后,查询不到数据(偶发)原因没有实现微服务。由于我们数据库在阿里云的RDS中实现了读写分离。受限于mys......
  • 00022.09 用字节流读写文件:FileInputStream和FileOutputStream
    用文件字节流读写文件目录文章目录​​用文件字节流读写文件目录​​​​前言​​​​一、InputStream​​​​二、使用字节流,来读取纯文本文件步骤​​​​三、复制任意......
  • Linux USB 文件读写性能测试
    USB端口读写性能测试:========================================================读测试:sync&&echo3>/proc/sys/vm/drop_caches;ddif=/mnt/media_rw/F004-BB9B/file......
  • 磁盘 IO 读写测试
    [root@linuxcool~]#fio-filename=linuxcool-direct=1-iodepth1-thread-rw=read-ioengine=psync-bs=16k-size=10G-numjobs=10-runtime=100-group_reporting-......
  • 介绍一款读写分离工具
    一、读写分离介绍1、What读写分离?基本的原理是让主数据库处理事务增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。2、why为何要读写分离?......
  • 《DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南》第十三章 QSPI Flash读写测试实验​
    QSPIFlash读写测试实验​PS的输入/输出外设(IOP)有两个具有不同功能特性和IO接口性能的QSPI控制器。它们共享相同的APB从接口和MIO引脚。一次只能使用控制器中的一个。QSPI......
  • HDFS读写数据流程
    文件写入(1)HDFSClient上传文件到集群,HDFSClient会创建本地的分布式文件系统(DistributedFileSystem),向集群NameNode请求上传文件(2)NameNode检查目录树是否允许创建文件,检查......
  • SPI读写官方Demo
    //SPDX-License-Identifier:GPL-2.0-only/**SPItestingutility(usingspidevdriver)**Copyright(c)2007MontaVistaSoftware,Inc.*Copyright(c)......