linux
文章平均质量分 93
lvguidong1
这个作者很懒,什么都没留下…
展开
-
DBus学习
DBus(Desktop Bus)是一种跨进程通信机制,提供了不同进程之间进行通信的能力。它的设计旨在提供一种简单、高效、安全的通信方式,使得增加新的软件组件变得更加容易,并且能够轻松地维护现有的组件。DBus通信机制被广泛应用于Linux操作系统和桌面环境中,如GNOME、KDE等桌面环境。DBus还提供了一些重要的通信功能,这些功能在一些Linux发行版、应用程序等中非常常见,例如,开机提示、系统监控、命名服务等。原创 2023-03-10 11:18:19 · 2492 阅读 · 1 评论 -
linux线程同步-读写锁-附可运行源码
在linux同步-互斥锁和linux同步-条件变量说明了几种线程同步的方式读写锁是一个可以分写状态和读状态的锁,可以分别加上写状态或读状态的锁。在读模式的锁下,所有试图以读模式获得它进行加锁的线程都可以获得锁,所有希望以写模式获得它的都会被阻塞。在写模式下,读写锁都被阻塞。读写锁又成共享互斥锁。简单的说,读模式的加锁下,所有进程都可以获得读锁,但都不能获得写锁。在写模式下,读写锁就变成了互斥锁,只有一个线程可以获得锁。简单来说,写独占、读共享读写锁非常适合于对数据结构读的次数远大于写的情况如下程原创 2020-09-04 15:37:32 · 160 阅读 · 0 评论 -
linux线程同步-条件变量-附可运行源码
条件变量是用来等待而不是用来上锁的。条件变量用来自动阻塞一个线程,直到某特殊情况发生为止。通常条件变量和互斥锁同时使用。条件变量使我们可以睡眠等待某种条件出现。条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待"条件变量的条件成立"而挂起;另一个线程使"条件成立"(给出条件成立信号)。条件的检测是在互斥锁的保护下进行的。如果一个条件为假,一个线程自动阻塞,并释放等待状态改变的互斥锁。如果另一个线程改变了条件,它发信号给关联的条件变量,唤醒一个或多个等待它的线程,原创 2020-09-04 13:53:40 · 136 阅读 · 0 评论 -
linux线程同步-互斥锁-附可运行源码
线程同步,即为多个线程在操作同一个公共数据区域时,能保持数据的一致性,看下面代码:#include <stdio.h>#include <unistd.h>#include <pthread.h>int num = 100;void*mythread(void* p){ srand(time(NULL)); while(1) { num = num + 1;原创 2020-09-04 13:37:54 · 230 阅读 · 0 评论