
POSIX
文章平均质量分 77
ahh
Crush_u
你好哇_李银河
展开
-
程序运行暂停控制(pause 函数和 sleep 函数)
在C语言中,pause()和sleep()是两个用于控制程序执行流程的函数,它们可以让程序暂停执行一段时间,但它们的特性和用途有所不同。原创 2024-05-20 18:06:34 · 2647 阅读 · 0 评论 -
消息队列和任务队列的区别
任务队列传递的是"任务",消息队列传递的是"消息"。任务队列可以说是消息队列的二次开发。消息队列更侧重于消息的吞吐、处理,具有有处理海量信息的能力。另外利用消息队列的生产者和消费者的概念,也可以实现任务队列的功能,但是还需要进行额外的开发处理。 任务队列则提供了执行任务所需的功能,比如任务的重试,结果的返回,任务状态记录等。虽然也有并发的处理能力,但一般不适用于高吞吐量快速消费的场景。其实任务队列和远程函数调用很像,是通过利用消息队列传递任务信息。消息队列是一个可以存放多则消息的 FIFO(先入.原创 2021-09-07 15:47:48 · 1230 阅读 · 0 评论 -
POXIS标准简单理解
从 1970 第一款现代操作系统——UNIX 诞生至今,出现了多款现代操作系统,为了方便应用程序以及中间件的移植,大多数操作系统都采用与 UNIX 兼容的 API(Windows 除外)。为了保证操作系统 API 的相互兼容性制定了 POSIX 标准。目前符合 POSIX 标准协议的操作系统有:UNIX、BSD、Linux、iOS、Android、SylixOS、VxWorks、RTEMS 等。POSIX标准意在期望获得源代码级别的软件可移植性,但POSIX 并不局限于 UNIX。即为一个POSIX原创 2020-08-25 16:23:03 · 2823 阅读 · 0 评论 -
POSIX 条件变量 - C语言实例使用理解
基本理解条件变量是用于线程同步,关注对象是共享数据状态的变化,用来协调各个线程合作完成某个任务。当一个动作需要另外一个动作完成时才能进行时,即:当一个线程的行为依赖于另外一个线程对共享数据状态的改变时,这时候就可以使用条件变量。条件变量是与互斥量相关联的一种用于多线程之间关于共享数据状态改变的通信机制。 条件变量与互斥量一起使用的时候,允许线程以无竞争的方式等待特定的条件发生。 条件变量是由互斥量保护的,线程在改变条件变量状态前必须先锁住互斥量。互斥锁是用来防止对变量的破坏,即规范线程对原创 2021-04-30 10:16:23 · 312 阅读 · 0 评论 -
POSIX 互斥锁&属性块
目录互斥锁属性块1.互斥锁属性块的初始化和删除2.设置和获取互斥锁属性块的类型3.设置和获取互斥锁属性块的算法类型4.设置和获取互斥锁属性块的天花板优先级5.设置和获取互斥锁属性块的进程共享属性互斥锁1.互斥锁的初始化和删除2.互斥锁的等待3.互斥锁的释放4.设置和获取互斥锁的天花板优先级原创 2021-04-23 13:57:24 · 719 阅读 · 0 评论 -
POSIX信号量——命名信号量
POSIX 信号量有两种类型:匿名信号量和命名信号量,其本质是计数型信号量,计数型信号量参考:https://blog.youkuaiyun.com/Liangren_/article/details/108593071。 匿名信号量只存在于内存中,这就要求使用信号量的线程必须可以访问内存,因此匿名信号量可以应用于同一进程中线程间的通信,不同的进程间需要映射这段内存到自己的地址空间。 命名信号量可以通过名字访问,因此可以应用于进程间的通信。一个 POSIX 命名信号量必须要调用 sem_open 函数..原创 2021-01-07 14:40:18 · 865 阅读 · 0 评论 -
进程和线程的理解
进程和线程的深入理解下面是抽象类比:单CPU:一台单核处理器计算机 = 一个车间;多CPU:一台多核处理器计算机 = 一座工厂;进程:一个车间 = 一个进程; (即一个运行的程序)多进程:一座工厂可以同时运行多个车间;CPU和进程:单CPU只能同时运行单个进程,多CPU可以同时运行多个进程。线程:车间内一个工人 = 一个线程;进程与线程:一个进程可以包括多个线程。线程间内存共享:车间的空间是工人们共享的,比如许多房间是每个工人都可以进出的。一个进程的内存空间是共享的,每个线程都可以使用这转载 2020-08-19 10:05:06 · 173 阅读 · 0 评论 -
POSIX信号量——匿名信号量
POSIX 信号量有两种类型:匿名信号量和命名信号量,其本质是计数型信号量,计数型信号量参考:https://blog.youkuaiyun.com/Liangren_/article/details/108593071。 匿名信号量只存在于内存中,这就要求使用信号量的线程必须可以访问内存,因此匿名信号量可以应用于同一进程中线程间的通信,不同的进程间需要映射这段内存到自己的地址空间。 命名信号量可以通过名字访问,因此可以应用于进程间的通信。POSIX 信号量被定义为 sem_t 类型,使用前应该定义 sem.原创 2021-01-07 13:45:12 · 1370 阅读 · 0 评论 -
自旋锁和互斥锁
自旋锁属于互斥锁的一种,都是为了解决某项资源的互斥使用。理解:线程A正在占用CPU使用时,线程B也想要占用CPU,但此时A已经加了使用标志(锁),那么B就可以有不同的操作 一、占用。不断循环并测试锁的状态,线程不会挂起(睡眠),处于忙等状态,采用这种行为的锁叫做自旋锁。 二、等待。线程B休眠阻塞,放弃CPU,直到A执行完了,锁没了,再使用内存。这种行为叫做互斥锁。 互斥锁:用于保护临界区,确保同一时间只有一个线程访问数据。对共享资源的访问,先对互斥量进行加锁,如果互斥量已经上原创 2020-10-10 20:05:06 · 782 阅读 · 1 评论 -
POSIX线程优先级设置
POSIX线程优先级的修改方式有静态修改、动态修改。静态修改:在线程启动前设置初始值,即修改线程属性块的值。 动态修改:在线程启动后动态修改,通过posix调度函数进行动态修改。静态修改:在调用 pthread_create 函数创建启动线程之前,调用 pthread_attr_init 函数初始化一个线程属性对象#include <pthread.h>int pthread_attr_init(pthread_attr_t *pattr);同时posix提供了一.原创 2021-03-24 15:47:19 · 1973 阅读 · 0 评论