随笔分类 -  并发编程

学习并发编程时的感受与总结
摘要:OSI七层架构 "osi" "tcp/udp通信" "Socket套接字" 并发编程 "并发编程" "进程的概念" "mutilprocess模块的用法" "线程的概念" "threading模块的使用" "锁" "线程vs进程" "queue模块的使用" "concurrent模块的使用" "协程 阅读全文
posted @ 2019-10-29 17:39 ~李 阅读(114) 评论(0) 推荐(0)
摘要:gevent模块 导入monkey补丁 调用monkey.patch_all() 这个函数会自动捕获程序中的阻塞状态, 以便gevent模块来进行协程间的切换 gevent.spawn(func) 使用spawn函数,返回值是对象,并且将func设置为协程,并发执行 调用返回对象绑定方法 PS:在这 阅读全文
posted @ 2019-09-24 08:35 ~李 阅读(808) 评论(0) 推荐(0)
摘要:协程 背景 python中的多线程使用的是操作系统中的原生线程 概念 在单进程的条件下实现并发 操作系统无法感知到单线程中的协程之间的切换 因为操作系统中并没有协程的概念, 协程是程序员用代码实现的一种并发 实现协程的必备条件 基于多道技术,我们知道了线程间的切换需要实现空间和时间上的复用,即:保存 阅读全文
posted @ 2019-09-23 22:04 ~李 阅读(624) 评论(0) 推荐(0)
摘要:concurrent模块 进程池和线程池 池的功能限制进程数或线程数. 当需要并发的进程或线程太多,远大于操作所能承受的最大数量时, 使用线程池或进程池控制程序产生的进程数或线程数,来防止操作系统受到太大的压力从而导致服务器宕机 下面两个模块都是在concurrent文件夹中的futures文件夹下 阅读全文
posted @ 2019-09-23 22:02 ~李 阅读(619) 评论(0) 推荐(0)
摘要:queue模块 Queue()队列 队列,先进先出 主要用法 put() get() put/get的默认参数 block 默认为true 当队列满了,再put就会进入等待状态 当队列空了,再get就会进入等待状态 当为False时 当队列满了,再put就会抛错 当队列空了,再get就会抛错 tim 阅读全文
posted @ 2019-09-23 22:01 ~李 阅读(416) 评论(0) 推荐(0)
摘要:线程vs进程 速度 线程要远快于进程 资源共享 线程共享资源 进程间彼此隔离 何时使用多进程 和 何时使用多进程 计算密集型使用多进程 IO密集型使用多线程 阅读全文
posted @ 2019-09-23 21:59 ~李 阅读(215) 评论(0) 推荐(0)
摘要:锁 Lock(线程锁)(互斥锁) 对可能发生数据安全的地方进行上锁 上锁外的地方还是并发的, 但上锁的代码就变成了串行 保证了数据安全 死锁 指两个或两个以上的线程在执行过程中 由于竞争资源或者由于彼此通信而造成的一种阻塞的现象 若无外力作用,它们都将无法继续执行下去 即:线程手里互相有其它线程要执 阅读全文
posted @ 2019-09-23 21:55 ~李 阅读(224) 评论(0) 推荐(0)
摘要:threading模块 开启线程的两种方式 导入Thread类 使用Thread类生成对象 调用对象的方法 start()方法 启动新线程 join()方法 等待线程结束在继续执行当前线程代码 getname()方法和setname()方法 获得线程名字和设置线程名字 is_alive()方法和is 阅读全文
posted @ 2019-09-23 21:51 ~李 阅读(755) 评论(0) 推荐(0)
摘要:线程 线程的内容(类比) 操作系统————工厂 进程————车间 线程————车间里的流水线 cpu————流水线运行所必需的电源 线程和进程的比较 两种不是一个概念,一般来说是无法比较的 功能上 进程 用来把资源集中到一起 进程只是一个资源单位,或者说资源集合 线程 cpu的执行单位(最小的) 运 阅读全文
posted @ 2019-09-23 21:49 ~李 阅读(176) 评论(0) 推荐(0)
摘要:mutilprocess用法 导入Process类 使用Process类生成对象 调用对象的方法 start() 开启子进程 join() 等待这个子进程结束再执行下面的代码 pid与ppid 查看pid 导入current_process current_process().pid 查看子进程的p 阅读全文
posted @ 2019-09-23 21:47 ~李 阅读(641) 评论(0) 推荐(0)
摘要:进程 操作系统发展史 操作系统的作用 对计算机硬件接口的复杂操作进行封装 串行 一个程序完完整整的运行结束后再执行下一个程序 多道技术 产生背景 针对单核CPU,实现并发 空间上的复用 各自程序所运行的内存空间是隔离的 无法对其他程序进行干扰 时间上的复用 复用CPU上的时间片 对CPU的利用率有了 阅读全文
posted @ 2019-09-23 21:45 ~李 阅读(624) 评论(0) 推荐(0)
摘要:"进程的概念" "mutilprocess模块的用法" "线程的概念" "threading模块的用法" "锁的用法" "线程和进程的比较" "queue模块的用法" "concurrent模块的用法" "协程的概念" "gevent模块的用法" 阅读全文
posted @ 2019-09-22 17:26 ~李 阅读(147) 评论(0) 推荐(0)
摘要:tcp/udp通信 tcp通信 服务端 客户端 解决tcp中的粘包问题 发数据时定制报头 收数据时先收4字节,在收报头,最后收精准的数据 udp通信 服务端 客户端 阅读全文
posted @ 2019-09-10 15:18 ~李 阅读(248) 评论(0) 推荐(0)
摘要:1.OSI五层架构 2.tcp的三次握手,四次挥手,及c端和s端的状态 3.基于socket写的一个c/s架构的程序 客户端 服务端 阅读全文
posted @ 2019-09-05 19:38 ~李 阅读(342) 评论(0) 推荐(0)