Linux系统编程
文章平均质量分 90
阿哈、小吴
这个作者很懒,什么都没留下…
展开
-
系统编程五:线程概念+线程属性
首先分离属性 是线程的一个其中属性,有了分离属性的线程,不需要别的线程去接合(阻塞等待回收)自己但是虽然说 是分离,但是进程退出了,该线程还是要退出。分离属性线程 ----》不需要 pthread_join非分离属性线程---》需要 pthread_join --》默认创建的普通属性 线程 就是 非分离 线程。原创 2023-09-15 18:44:30 · 67 阅读 · 0 评论 -
系统编程八:线程池
线程池就是多个线程组合起来的一个集合,就好像一家公司,由多个员工组成的一个集合。当有任务时,这些线程就会去处理这些任务,当没有任务时,线程就会休息。原创 2023-09-16 17:09:52 · 65 阅读 · 1 评论 -
系统编程七:线程同步互斥+读写锁+条件变量
线程因为某一个条件/情况不成立下,进入一个变量中等待,这个存放线程的变量就是条件变量。条件变量必须跟互斥锁一起使用。原创 2023-09-16 12:31:51 · 83 阅读 · 1 评论 -
系统编程六:线程同步互斥+有名信号量+无名信号+互斥锁
同步互斥 就是使得线程处理任务时有先后顺序,为了防止线程资源被抢占的问题。有名信号量 跟 信号量非常相似,信号量的值只能是 0/1,但是有名信号量的值可以是 0~正无穷。信号量 使用了 空间 + 数据 ,有名信号量 只是使用了数据来处理。互斥锁 是专门 用于处理线程互斥的一种方式,它有两种状态: 上锁状态/解锁状态。特点:如果互斥锁处于上锁状态,那么再上锁就会造成阻塞,直到这把锁解开之后,才能上锁。解锁状态依然可以解锁,不会阻塞。原创 2023-09-15 20:05:48 · 69 阅读 · 0 评论 -
系统编程四:消息队列+共享内存+信号量
信号量也是属于 IPC对象,所以使用信号量之前必须先申请key值。信号量 不是用于 进程之间的通信,主要用来协调两个进程之间的资源分配。原创 2023-09-14 19:23:33 · 126 阅读 · 1 评论 -
系统编程三:信号处理+信号阻塞属性
信号集是一个集合,这个集合中每个成员都是 信号,通过将信号加入到信号集中,再设置阻塞状态给信号集,那么整个信号集中里面所有的信号都会变成阻塞的状态。类似定义一个数组 ,存储 里面要阻塞的多个信号信号集 数据类型 sigset_t比如 定义一个信号集变量 sigset_t set;//清空信号集//将Linux下的所有的信号都加入到信号集中set//在指定的信号集set中,添加一个指定的信号signum到集合中//在指定的信号集set中,从集合中删除一个指定的信号signum。原创 2023-09-14 18:54:37 · 44 阅读 · 1 评论 -
系统编程二:vfork+exec+进程通信方式管道+信号
无名管道 只能作用于 亲缘之间的进程通信,无名管道相当于一个队列结构,fd[1]为写入端(入队),fd[0]为读出端(出队)。其中信息读出后即删除,再次读取时即为下一个信息。有名管道文件 是 一个有名字的管道文件。因为在linux下,所有的进程都是可以看到这个文件,所以有名管道作用的范围 是整个linux系统中任意的两个进程。原创 2023-09-14 18:32:55 · 108 阅读 · 1 评论 -
系统编程一:进程的概念+进程API
进程结束的时候,就会从运行变成 僵尸态,所谓的僵尸态,就是代表这个进程所占用的CPU资源和自己本身。任务结构体没有被释放,这个状态的进程就是僵尸态进程。原创 2023-08-29 14:12:47 · 113 阅读 · 0 评论