可重入函数 可重入函数:当前进程已经处于该函数中, 这时程序会允许当前进程的 某个执行流程再次进入该函数, 而不会引发问题。可重入函数一定是线程安全的,而线程安全函数则不一定是可重入函 数,很难说出哪些函数是可重入函数,但是可以很明显看出哪些函数是不可以重入的函数。例子:当函数使用锁的时候,尤其是互 ...
分类:
其他好文 时间:
2020-04-27 19:26:43
阅读次数:
55
基于信号量的进程同步与互斥(1) 本人水平有限,若有错误,欢迎读者及时指出,万分感谢! 1. P/V操作 ? P/V操作由 P操作原语 和 V操作原语 组成,其意义是在一个整型变量S上定义了两个操作,该操作变量被称之为 信号量S ,只能由P操作和V操作进行修改。S必须置一次且只能置一次初值, S = ...
分类:
系统相关 时间:
2020-04-26 13:55:41
阅读次数:
95
【目录】 一、 multiprocessing模块介绍 二、 process类的介绍 三、 process类的使用 四、僵尸进程和孤儿进程 五 、守护进程 六 、进程同步(互斥锁) 七 、队列--生产者消费者模型 一、 multiprocessing模块介绍 # python中的多线程无法利用多核优 ...
分类:
编程语言 时间:
2020-04-25 13:06:01
阅读次数:
97
线程同步是指线程之间所具有的一种制约关系,一个线程的执行依赖另一个线程 的消息,当它没有得到另一个线程的消息时应等待,直到消息到达时才被唤醒。 线程互斥是指对于共享的进程系统资源,在各单个线程访问时的排它性。当有若 干个线程都要使用某一共享资源时,任何时刻最多只允许一个线程去使用,其它 要使用该资源 ...
分类:
编程语言 时间:
2020-04-25 01:13:25
阅读次数:
239
死锁:是指两个或两个以上的进程(或线程)在执行过程中,因争夺资源而造成 的一种互相等待的现象,若无外力作用,它们都将无法推进下去。 产生死锁的必要条件: 1、互斥条件:所谓互斥就是进程在某一时间内独占资源。 2、请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。 3、不剥夺条件:进 ...
分类:
其他好文 时间:
2020-04-25 01:03:41
阅读次数:
287
同步锁: multiprocessing 的 Lock() 不加锁:未加锁部分并发执行,加锁部分串行执行,速度慢,数据安全 GIL锁: 线程执行速度快,直接创建, 进程要先创建进程,申请空间。 线程 主程序 进程 垃圾回收 是 线程,干活的。进程是一块内存空间,空间里有主线程,和其它线程。 http ...
分类:
其他好文 时间:
2020-04-24 20:16:04
阅读次数:
71
[Toc] 内容概要 进程对象及其他方法 僵尸进程与孤儿进程 守护进程 互斥锁 队列介绍 进程间通信IPC机制 生产者消费者模型 线程相关知识点 进程对象及其他方法 如何查看进程的PID号 命令法: windows: tasklist tasklist |findstr PID查看具体的进程 mac ...
分类:
编程语言 时间:
2020-04-23 23:19:00
阅读次数:
98
进程对象及其他方法 僵尸进程与孤儿进程(了解) 守护进程 互斥锁 多个进程操作同一份数据的时候,会出现数据错乱的问题 针对上述问题,解决方式就是加锁处理: 将并发变成串行,牺牲效率但是保证了数据的安全 进程间通信 队列Queue模块 IPC机制 生产者消费者模型 线程理论 致命三问 什么是线程 为何 ...
分类:
系统相关 时间:
2020-04-23 22:47:52
阅读次数:
82
情况是这样的:字面值0是一个int类型而不是指针。如果C++发现一个0,在只能使用指针的上下文中,它会不情愿的把0解释为一个空指针,但是那是迫不得已的情况。C++的基本策略是0是一个int类型,而不是一个指针类型。 实际上,NULL的真实情况也是这样的。NUll的细节上有一些不确定性,因为各个实现被 ...
分类:
其他好文 时间:
2020-04-23 19:23:13
阅读次数:
53
Java 多线程进阶 并发协作控制 线程协作对比 Thread/Executor/Fork Join 线程启动, 运行, 结束. 线程之间缺少协作. synchronized 同步 互斥, 限定只有一个线程才能进入关键区. 简单粗暴, 性能损失有点大 _ 2. 操作奶茶账本 假设奶茶店有老板和多名员 ...
分类:
编程语言 时间:
2020-04-22 10:24:17
阅读次数:
57