• 2024-07-02Redis-分布式锁(基本原理和不同实现方式对比)
    文章目录1、基本原理2、不同实现方式1、基本原理分布式锁:满足分布式系统或集群模式下多进程可见并且互斥的锁。分布式锁的核心思想就是让大家都使用同一把锁,只要大家使用的是同一把锁,那么我们就能锁住线程,不让线程进行,让程序串行执行,这就是分布式锁的核心思路
  • 2024-07-01高编:线程(2)——同步与互斥
    一、互斥概念:   互斥===》在多线程中对临界资源的排他性访问。   互斥机制===》互斥锁 ===》保证临界资源的访问控制。   pthread_mutex_t mutex;   互斥锁类型       互斥锁变量内核对象框架:   定义互斥锁==》初始化锁=
  • 2024-06-30OO题目集7~8总结
    OO题目集7~8总结​最后的两次题目集主要是对家具强电电路模拟程序的迭代设计,第7次题目集添加了电路元件互斥开关和窗帘,第8次则是添加了二极管元件,新的题目对于创新和思考能力以及思维逻辑能力要求更高了,主要是电路元件和电路系统的功能越来越复杂,比较难用代码体现一个完整的
  • 2024-06-30LINUX系统编程:多线程互斥
    目录1.铺垫2.线程锁接口的认识静态锁分配动态锁的分配互斥量的销毁互斥量加锁和解锁3.加锁版抢票4.互斥的底层实现1.铺垫先提一个小场景,有1000张票,现在有4个进程,这四个进程疯狂的去抢这1000张票,看看会发生什么呢?#include<iostream>#include<thread>#include
  • 2024-06-30题目集7~8的总结
    目录一.前言 nchu-software-oop-2024-上-7~知识点 nchu-software-oop-2024-上-6~知识点二.设计与分析一.家居强电电路模拟程序-3多个并联电路:互斥开关:二.家居强电电路模拟程序-4二极管:输出内容:三.踩坑心得1.字典序排序2.多个互斥开关3.连续调速器4.排查不周4.改进建议1.if-els
  • 2024-06-30第三次Blog
    (1) 前言:第七次大作业与第八次大作业知识点要是继承与多态并且对类方法的运用,题量比较大,难度也是不断上升。第七次大作业在第六次大作业基础上增加了受控窗帘这一受控设备与互斥开关这一控制开关,并考虑了一条总电路上有多个并联电路,输入信息也变得与第六次大作业不一样,但输出信息大
  • 2024-06-30PTA题目集7~8的总结性Blog
    前言:对于我这种水平的学生来说本次的7-8次PTA的难度之大令我无从下手,况且之前的第6次PTA就已经让我望而止步了,更别提这两次在第6次PTA题目集之上再次进行迭代的题目了。再加上面临的期末周,大量学科等着我去复习,以至于没时间去钻磨PTA的改动,哭死,连老师都说单单是第8次题目集的题目
  • 2024-06-22读者写者问题(读者优先、公平竞争、写者优先)
    1.读者优先        当有读者进程进行读时,允许多个读者同时读,但不允许写者写;当有写者进程进行写时,不允许其他写者写,也不允许读者读读者算法:p(r_mutex);//申请修改read_countifread_count==0:p(mutex);//获得读文件的权限read_count++;V(r_mutex);阅
  • 2024-06-20golang 爬虫修炼02 ---协程、互斥锁、读写锁、waitgroup
    协程程序:为了完成特定任务,使用某种语言编写的一组指令的集合,是一段静态的代码进程:是程序的一次执行过程。正在运行的一个程序,进程作为资源分配的单位,在内存中会为每个进程分配不同的内存区域。进程是动态的,有产生、存在、消亡的过程线程:进程可进一步细分为线程,是一个程序
  • 2024-06-19进阶篇06——锁
    概述全局锁表级锁表锁元数据锁元数据锁是系统自动加的,不需要我们手动执行命令添加。意向锁 意向锁和元数据锁一样,也是在加行锁的时候自动给表加上相应的意向锁,不需要我们手动添加。行级锁行锁读锁和读锁兼容,写锁和读锁互斥,写锁和写锁也互斥间隙锁、临
  • 2024-06-18FreeRTOS 体验教程:3.如何用互斥量实现FreeRTOS多线程访问共享资源?
    FreeRTOS互斥量使用教程互斥量(Mutex)是一种特殊的信号量,用于管理对共享资源的访问。在FreeRTOS中,互斥量的句柄类型依然是xSemaphoreHandle。本文将详细介绍如何在FreeRTOS中创建和使用互斥量,并通过实例展示其运行效果。1.创建互斥量在FreeRTOS中,创建互斥量非常简
  • 2024-06-15IO、进程、线程面试题
    1.标准IO和文件IO的区别1.标准IO标准IO是基于缓存的IO,也就是说,在进行IO操作时,数据会先被读入缓存,然后再进行实际的IO操作。标准IO的优点是对于大文件的读写操作效率比较高,因为可以利用缓存来避免频繁的系统调用。此外,标准IO还提供了一系列方便的API函数,例如printf、scanf等
  • 2024-06-15C++多线程:生产者消费者模式
    文章目录一、模式简介二、头文件、全局变量2.1仓库类的设计2.1.1关于仓库类的分析2.1.2仓库类的设计代码2.2工厂类的设计2.2.1关于工厂类的分析2.2.2工厂类的设计代码a将产品item放到仓库repob将产品item从仓库repo取出c生产者操作d消费者操作2.2.3主函数代
  • 2024-06-14持续总结中!2024年面试必问 20 道并发编程面试题(四)
    上一篇地址:持续总结中!2024年面试必问20道并发编程面试题(三)-CSDN博客七、请解释什么是原子操作。原子操作(AtomicOperation)是指在多线程环境中,一个操作或者一系列操作,要么完全执行,要么完全不执行,中间不会有其他线程的干扰。这意味着原子操作在执行过程中不会被其他线程中断,
  • 2024-06-14【redis】互斥锁
    1.创建一个Go程序来实现基于Redis的互斥锁。这个程序将尝试获取一个锁,成功后对文件进行操作,并且在完成操作后释放锁packagemainimport("context""fmt""github.com/go-redis/redis/v8""os""time")varctx=context.Background()funcma
  • 2024-06-13【知识点】std::thread::detach std::lock_guard std::unique_lock
    在C++11中,std::thread提供了并发编程的基础设施,使得我们可以创建和管理线程。std::thread的detach方法是一种常用的线程管理方式,允许线程在后台独立运行,而不必与主线程同步或等待其完成。std::thread::detach方法当你调用std::thread对象的detach方法时,线程将
  • 2024-06-11浅析嵌入式实时系统中信号量的概念
    目录概述1.认识信号量1.1定义信号量1.2信号量的类型1.2.1二值信号量1.2.2计数信号量1.2.3互斥信号量1.2.3.1认识互斥信号量1.2.3.2互斥信号量的其他特性2典型信号量的使用2.1等待和信号同步2.2多任务等待和信号同步2.3信用跟踪同步 2.4单一共享资
  • 2024-06-09如何使用互斥锁解决缓存击穿(热点Key)
    还是基于上一篇的代码。当热点缓存失效时,会出现大量请求直接打到数据库,可能会导致数据库压力过大,甚至崩溃。为了解决这一问题,我们可以使用互斥锁(Mutex)来控制缓存重建过程。改造代码如下:publicShopqueryWithMutex(Longid){Stringkey=CACHE_SHOP_KEY+id;//
  • 2024-06-03OPEN_CV多线程线程池管理
    两种自旋锁的设置操作系统级别自旋锁的设置,例如在C++11及以后的版本中,自带线程管理库,可以定义为:defineCV_YIELD()std::this_thread::yield(),此时进入CV_YIELD(),线程释放CPU,线程被阻塞,等待被唤醒.CPU级别的自旋锁的设置,与使用的CPU架构有关,以X86为例,X86
  • 2024-06-01互斥锁与条件变量学习与应用小结
    互斥锁,也叫互斥量。有以下几个显著的特点:唯一性:互斥锁保证在任何给定的时间点,只有一个线程可以获得对临界区资源的访问权。如果一个线程锁定了一个互斥量,在它解除锁定之前,没有其他线程可以锁定这个互斥量。原子性:锁定和解锁互斥锁的操作是原子的,这意味着操作系统(或pthread函
  • 2024-06-01在进程中使用条件量和互斥锁实现线程的同步以及临界资源的互斥访问
    /******************************************************************** author :北极甜虾呦* date :2024/06/01* function:进程中使用条件量和互斥锁实现线程的同步以及临界资源的互斥访问* note :None* CopyRight(c)[email protected]
  • 2024-05-31熟悉条件量和互斥量的结合使用
    /***************************************************filename:1.c*author:[email protected]*date:2024/05/31*brief:作业:设计一个程序,主线程需要创建2个子线程之后主线程终止,*此时进程中有2个子线程A和B,此时进程中有一个临
  • 2024-05-31系统编程POSIX信号量题
    系统编程POSIX信号量题目设计一个程序,主线程需要创建2个子线程之后主线程终止,此时进程中有2个子线程A和B,此时进程中有一个临界资源flag,子线程A获取触摸屏坐标并判断坐标值是否在LCD屏的左上角,如果坐标范围满足左上角,则利用条件量和互斥锁来唤醒子线程B,子线程B的任务是判断flag
  • 2024-05-31同步互斥——进程篇(一)信号量
    信号量(Semaphores)信号量是一种用于进程间或线程间同步的机制。它可以限制多个进程或线程对共享资源的并发访问,确保资源被安全使用。信号量的核心思想是通过计数来控制访问,计数值表示当前可以访问资源的可用数量。计数器:信号量的核心是一个整数计数器。当计数器大于0时,表
  • 2024-05-31系统编程练习题----利用条件量和互斥锁,实现两个线程之间的同步与互斥
    目录题目解析代码结果展示题目解析​ 该题主要依靠条件量和互斥锁来实现线程之间的同步与互斥,分析主线程、线程A和线程B的任务如下:主线程:打开LCD屏和触摸屏的硬件文件,并分别存储两个文件的文件描述符,方便后面进行条件判断。开启线程A和线程B。定义并初始化条件量和互斥