![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线程
Wavesgf
这个作者很懒,什么都没留下…
展开
-
Linux--线程下
信号量 – 线程级 信号量类似于一个特殊的计数器,当信号量值大于零,表示可以访问的临界资源的个数,等于零,对信号量执行P操作会阻塞 对信号量的P,V操作不一定非得在同一线程中 信号量方法: #include <semaphore.h> 信号量类型:sem_t 全局定义一个sem_t类型的信号量 初始化:int sem_init(sem_t *sem, int shared, int init_val); shared:设置信号量是否在进程间共享,Linux不支持,一般给零 init_val:信原创 2020-09-04 14:23:35 · 108 阅读 · 0 评论 -
Linux--线程中
线程间的数据共享: .data和.bss .heap 文件描述符(无论哪个线程打开一个文件,其他线程只要能够获取到对应的文件描述符,就可以访问这个文件) 线程同步 --进程同步 需要同步的原因: 1.访问临界资源 2.相互配合执行 同步的方式: 1.互斥锁(互斥量) 2.信号量 – 线程级信号量 3.条件变量 4.读写锁 互斥锁 只有加锁和解锁两种状态;使用临界资源之前,对互斥锁执行加锁状态,如果锁是加锁状态,则加锁操作阻塞,直到有对其加锁过程的线程进行了解锁操作;使用临界资源后,需要对互斥锁进行原创 2020-09-03 21:52:01 · 85 阅读 · 0 评论 -
Linux--线程上
多线程编程 线程概念: 进程内部的一条执行序列,一个进程可以包含多条线程,至少一条线程,就是main方法所代表的这条执行流 – 主线程 进程中的线程仅仅占一个栈帧 线程的实现方式: 内核级线程:优点:用户程序简单,一个线程阻塞可以切换到另一个线程。 缺点:切换较慢,每次切换都得从用户态陷入内核态;内核需要维护线程的控制信息,比较消耗内核的内存资源。 用户级线程:优点:在任何操作系统上都可以使用,比较灵活;切成块,切换在用户态下完成,不需要陷入内核;不需要修改操作系统,实现相对比较容易。 缺点:用户程序编写比原创 2020-09-03 18:20:53 · 123 阅读 · 0 评论