
系统编程
文章平均质量分 81
sakura0908
未来的一个小小码农
展开
-
线程同步互斥之有名信号量,无名信号量
POSIX信号量与IPC信号量组中的信号量元素的逻辑完全一样,但POSIX信号量操作更加简便,接口更加易用。操作与匿名版本无异,其最大的特点是存在于文件系统 /dev/shm 中,可以被系统中任意有权限的进程打开。有名信号量 -> 进程 (共享内存+有名信号量一起使用) 一般作用于线程之间的互斥,由于是无名信号量,所以说是没有名字的,不能使用sem_open打开。信号量 -> 进程 (共享内存+信号量一起使用) ---进程IPC中的一种。1、什么是同步互斥?原创 2023-03-12 11:36:02 · 509 阅读 · 0 评论 -
基于线程池的目录拷贝项目
1)实现文件与文件的拷贝。3)文件与文件的复制 目标文件是否可以绝对/相对路径复制。4)目录与目录的复制 目标目录是否可以绝对/相对路径复制。5)文件与目录的复制 目标文件是否可以绝对/相对路径复制。3)实现文件与目录的拷贝。2)实现目录与目录的拷贝。原创 2023-04-16 23:09:23 · 926 阅读 · 0 评论 -
线程池的框架代码和思路
一个基本事实是,线程的创建和销毁都是需要额外的系统资源的,如果线程的生命周期很短,那么相对于实际干活的时间,来回重复创建和销毁就显得很不划算,但也不能让线程执行完任务之后耗着不走,因此就需要一个比较科学合理的布局,来管控线程,一个比较成熟的方案是:在上述情况下,将线程放入一个类似缓冲区的。线程池的基本想法,是将许多线程,放置一个池子中(实际就一个结构体),只要有任务,就将任务投入池中,这些线程们通过某些机制,及时处理这些任务。而任务都被放入一个链表,被互斥锁保护起来。原创 2023-03-13 10:12:17 · 180 阅读 · 0 评论 -
线程同步互斥之互斥锁,读写锁,条件变量
任何一条线成要开始运行互斥区间的代码,都必须先获取互斥锁,而互斥锁的本质是一个二值信号量,因此当其中一条线程抢先获取了互斥锁之后,其余线程就无法再次获取了,效果相当于给相关的资源加了把锁,直到使用者主动解锁,其余线程方可有机会获取这把锁。注意,上述表述中,条件和条件量是两个不同的东西,所谓条件就是指程序要继续运行所需要的前提条件,比如文件是否读完、内存是否清空等具体的场景限定,而条件量(即pthread_cond_t)是本节课件要讨论的一种同步互斥变量,专用于解决上述逻辑场景。这就是读写锁的设计来源。原创 2023-03-13 10:00:34 · 222 阅读 · 0 评论 -
线程分离属性,线程取消(状态,类型),线程取消例程函数
主线程 ---> 取消请求 ---> 子线程 pthread_cancel() ---> man 3 pthread_cancel #include>1.子线程收到取消请求之后,(遇到取消点函数)就会执行线程取消例程函数,然后执行完就响应取消请求直接退出,不会再往下面执行了。原创 2023-03-12 11:21:51 · 1161 阅读 · 0 评论 -
线程(创建,传参,接合,退出)
线程实际上是应用层的概念,在Linux内核中,所有的调度实体都被称为任务(task),他们之间的区别是:有些任务自己拥有一套完整的资源,而有些任务彼此之间共享一套资源,如下图所示。其他线程可使用 pthread_join() 来释放僵尸线程的资源,并可获得其退出时返回的退出值。5)结构体两种方式的数据 结构体对象需要类型转换和解引用,结构体指针只需要类型转换,不需要解引用。包括主线程在内,所有线程的地位是平等的,任何线程都可以先退出,任何线程也可以接合另外一条线程。原创 2023-03-11 20:03:02 · 125 阅读 · 0 评论 -
进程通信之共享内存,信号量
进程通信之共享内存,信号量测试代码原创 2023-03-11 09:12:19 · 1009 阅读 · 0 评论 -
进程通信之消息队列
进程通信之消息队列的测试代码原创 2023-03-10 14:40:39 · 301 阅读 · 0 评论 -
进程通信方式之管道通信,信号(信号集)
进程通信方式之管道通信,信号(信号集)的测试代码原创 2023-03-09 20:58:15 · 499 阅读 · 0 评论 -
进程,父子进程
进程、父子进程的说明原创 2023-03-09 14:42:31 · 2227 阅读 · 0 评论