Publish and subscribe model implemented based on fixed-length blocking message queue [c++]

#include <iostream> #include <vector> #include <queue> #include <thread> #include <mutex> #include <condition_variable> #include <functional> #include <cstring> #include <chrono> // Custom message structure template <typename CallbackType> struct CustomMessage { CallbackType callback; void* data; size_t length; CustomMessage(CallbackType callback, void* data, size_t length) : callback(callback), data(data), length(length) {} CustomMessage() = default; // Add default constructor }; // message […]

Implementing distributed locks based on redis

Article directory Implementing distributed locks based on redis Basic implementation Anti-deadlock Prevent accidental deletion Atomicity cannot be guaranteed in high concurrency scenarios. Use Lua to ensure deletion atomicity Encapsulate the redis lock into a method Implementing distributed locks based on redis Basic implementation With the help of the command setnx(key, value) in redis, if the […]

FreeRTOS mutual exclusion semaphore (mutex lock)

1. Mutually exclusive semaphore A mutually exclusive semaphore is actually a binary semaphore with priority inheritance, which is mostly used for mutually exclusive access to shared resources between different tasks. 2. Mutual exclusion semaphore reduces the impact of priority flipping When a mutex semaphore is being used by task L, and a task H also […]

Distributed lock 2 in redisson

Fair Lock The Redisson distributed reentrant fair lock based on Redis is also a RLock object that implements the java.util.concurrent.locks.Lock interface. It also provides asynchronous (Async), reflective (Reactive) and RxJava2 standard interfaces. It ensures that when multiple Redisson client threads request locks at the same time, priority will be given to the thread that made […]

Solved: Python Error: IndentationError: expected an indented block problem

Blogger Maotouhu () takes you to Go to New World? Blog homepage: Maotouhu’s blog “Complete Column of Interview Questions” Articles with pictures and texts Vivid images Simple and easy to learn! Everyone is welcome to step in~ “IDEA Development Cheats Column” Learn the common operations of IDEA and double your work efficiency~ “Master Golang in […]

Learn CompletableFuture: Keep your code from blocking!

Source: juejin.cn/post /6844904024332828685 Welcome to join Xiaoha’s Planet, you will get: Exclusive project practice/Java learning route/One-on-one questions/Learning check-in/Gift book benefits Currently, I am leading my friends to work on the first project within the planet: Full StackSeparation of front-end and back-end blog, hands-on, back-end + front-end full-stack development, from 0 to 1 Explain the development […]

Partition table locks and how to add partitions

Create partition #Create partition partition table postgres=# create table t_partition (p timestamp,v1 varchar(2),v2 text) partition by range (p); CREATE TABLE #Create three partitions postgres=# create table p0 partition of t_partition for values from (‘2022-3-13’) to (‘2022-3-14’); CREATE TABLE postgres=# create table p1 partition of t_partition for values from (‘2022-3-14’) to (‘2022-3-15’); CREATE TABLE postgres=# create […]

18 | Reactive programming framework design: How to make program calls respond immediately without blocking waiting?

In the first column, we discussed why the program crashes under high concurrency conditions. The main reason is that in the case of high concurrency, there are a large number of user requests that require program calculation and processing. The current processing method is to allocate a thread to each user request. When the thread […]

Digital clock design based on 51 microcontroller – digital tube display

Digital clock design based on 51 microcontroller (Simulation + Program + Schematic + Design Report) Function introduction Specific functions: 1. Automatic timing, showing 24-hour time, and a 6-digit LED display showing hours, minutes, and seconds. 2. Automatic timing, showing 24-hour time, and a 6-digit LED display showing hours, minutes, and seconds. 3. Equipped with calibration […]