最新 最热

17-生产者与消费者问题

系统中有一组生产者进程和一组消费者进程,生产者进程每次生产一个产品就放入缓冲区,消费者进程每次从缓冲区中取出一个产品并使用(这里的产品可能是某种数据)...

2022-10-27
1

16-用信号量实现进程互斥,同步,前驱关系

例如,在上面的P1和P2进程中,由于异步性导致程序执行顺序并不确定,但我们必须保证代码1和代码2在代码4之前执行,此时就需要使用进程同步机制实现...

2022-10-27
1

18-信号量相关问题(吸烟者,读者-写者等)

假设一个系统有三个抽烟者进程和一个供应者进程。每个抽烟者不停地卷烟并抽掉它,但是要卷起并抽掉一支烟,抽烟者需要有三种材料:烟草、纸和胶水。三个抽烟者中,第一个拥有烟草、第二个拥有纸、第三个拥有胶水。供应者进...

2022-10-27
1

Python中的GIL机制详解

大家应该都知道,python有一个GIL(全局解释器锁),用于控制多线程的并发行为。注:GIL不是必须的,可以通过对每个资源单独加锁的方式去掉GIL,也就是将GIL换成更细粒度的锁。...

2022-10-27
2

【Go】sync.Mutex 源码分析

互斥锁的锁状态由 state 这个 32 的结构表示,这 32 位会被分成两部分:

2022-10-26
2

Linux 线程间通信和同步

很多时候,我们做项目并不会创建那么多进程,而是创建一个进程,在该进程中创建多个线程进行工作。

2022-10-25
1

用户态和内核态切换开销_进程切换在用户态还是内核态

当发生用户态到内核态的切换时,会发生如下过程(本质上是从“用户程序”切换到“内核程序”)

2022-10-02
2

Linux futex_centos8 pip

Priority Inheritance,优先级继承,是解决优先级反转的一种办法。 一个经典的例子:A/B/C三个实时进程,优先级A>B>C。C持有a锁,而A等待a锁被挂起。原本C释放a锁之后,A进程就可以继续执行的,但是偏偏有个比C优先级高的B进程存在...

2022-09-30
2

Rust常用并发示例代码

如果method1()被多次调用,就会创建多个线程,如果希望不管调用多少次,只能有1个线程,在不使用线程池的前提下,有1个简单的办法:

2022-09-28
2

Go高性能之方法接收器 - 指针vs值

如果您是 Go 新手,那么您一定遇到过方法和函数的概念。让我们找出两者之间的区别-

2022-09-19
1