day43 Pyhton 并发编程06】的更多相关文章

一.内容回顾 线程 锁 为什么有了GIL之后还需要锁 多个线程同时操作全局变量还需要锁 当出现'非原子性操作',例如+= -= *= /= l.append(l) 原子性操作 a += 1  a= a+1 tmp = a +1 a = tmp 死锁现象 什么是死锁现象 两个以上的线程争抢同一把锁 其中一个线程获取到锁之后不释放 另外的其他线程就都被锁住了 比较容易出现问题的情况: 两把锁套在一起用了 死锁现象的本质 :代码逻辑问题 递归锁 一把锁在同一个线程中acquire多次而不被阻塞 如果另…
Java并发编程实践 目录 并发编程 01—— ThreadLocal 并发编程 02—— ConcurrentHashMap 并发编程 03—— 阻塞队列和生产者-消费者模式 并发编程 04—— 闭锁CountDownLatch 与 栅栏CyclicBarrier 并发编程 05—— Callable和Future 并发编程 06—— CompletionService : Executor 和 BlockingQueue 并发编程 07—— 任务取消 并发编程 08—— 任务取消 之 中断…
Python并发编程06 /阻塞.异步调用/同步调用.异步回调函数.线程queue.事件event.协程 目录 Python并发编程06 /阻塞.异步调用/同步调用.异步回调函数.线程queue.事件event.协程 1. 阻塞 2. 异步调用.同步调用 1. 概念 2. 异步调用 3. 同步调用 3. 异步调用+回调函数 4. 线程queue 5. 事件event 6. 协程 1. 阻塞 进程运行的三个状态:运行,就绪,阻塞 阻塞非阻塞是从执行任务的角度来看的: 阻塞:程序运行时,遇到了IO,…
本文源码:GitHub·点这里 || GitEE·点这里 一.Lock体系结构 1.基础接口简介 Lock加锁相关结构中涉及两个使用广泛的基础API:ReentrantLock类和Condition接口,基本关系如下: Lock接口 Java并发编程中资源加锁的根接口之一,规定了资源锁使用的几个基础方法. ReentrantLock类 实现Lock接口的可重入锁,即线程如果获得当前实例的锁,并进入任务方法,在线程没有释放锁的状态下,可以再次进入任务方法,特点:互斥排它性,即同一个时刻只有一个线程…
# 网络编程 # arp协议 : # 1.这是一个通过ip找mac地址的协议 # 2.由于有了socket,用户在使用网络的时候,只需要关心对方用户的ip地址就可以了 # 3.如果用户即将和这个ip进行通信,那么还需要知道它的mac地址 # 4.这个时候就需要由你的机器发起一个arp请求 # 5.由交换机进行广播 # 6.对应的机器会回应这个arp请求 # 7.通过交换机单播发给你的机器 # tcp协议和udp协议的特点? # 1.tcp # 面向连接的可靠的流式传输 适合传输比较大的文件, #…
内容回顾 socket 最底层的网络通信 所有的网络通信都是基于socket     进程 什么是进程? 是操作系统的发展过程中,为了提高cpu的利用率,在操作系统同时运行多个程序的时候,为了数据的安全\代码不混乱而创造的一个概念 每一个程序运行起来都至少是一个进程 进程是计算机中最小的资源分配单位 进程被操作系统调度的,有很多相关的算法--早期的操作系统 进程之间是数据隔离的 进程的三状态  就绪  运行  阻塞 同步异步 同步:一个任务的执行依赖另一个事务的结束 join  lock 异步:…
一.内容回顾 # 线程 # 正常的编程界: # 进程 # 计算机中最小的资源分配单位 # 数据隔离 # 进程可以独立存在 # 创建与销毁 还有切换 都慢 给操作系统压力大 # 线程 # 计算机中能被CPU调度的最小单位 # 同一个进程中的多个线程资源共享 # 线程必须依赖进程存在 # 创建与销毁 还有切换 都比进程快很多 # Cpython解释器下 # GIL 全局解释器锁 # 保证了同一时刻下只有一个线程可以被CPU操作 # threading模块 # 创建子线程 Thread类 # star…
一.内容回顾 进程是计算机中最小的资源分配单位 进程与进程之间数据隔离,执行过程异步 为什么会出现进程的概念? 为了合理利用cpu,提高用户体验 多个进程是可以同时利用多个cpu的,可以实现并行的效果 僵尸进程 进程 状态码 z/z 僵尸进程   linux 在主进程中控制子进程的方法 子进程对象 = Process (target,args)  在创建的这一刻根本就没有通知操作系统 子进程对象. start()  通知操作系统,开启子进程,异步非阻塞 子进程对象.terminate() 通知操…
一.开启子进程的另一种方式 import os from multiprocessing import Process class MyProcess(Process): def __init__(self,参数): super().__init__() self.一个属性 = 参数 def run(self): print('子进程中要执行的代码') if __name__ == '__main__': conn = '一个链接' mp = MyProcess(conn) mp.start()…
一.内容回顾 并发和并行的区别 并发 宏观上是在同时运行的 微观上是一个一个顺序执行 同一时刻只有一个cpu在工作 并行 微观上就是同时执行的 同一时刻不止有一个cpu在工作 什么是进程 一个运行中的程序就是一个进程 是计算机中最小的资源分配单位 什么是同步 程序顺序执行,多个任务之间串行执行 什么是异步 多个任务同时运行 IO操作 input  输入到内存  read load recv accept recvfrom input output 从内存输出 write dump send co…