Loading

摘要: 网络编程里常听到阻塞IO、非阻塞IO、同步IO、异步IO等概念,总听别人装13不如自己下来钻研一下。不过,搞清楚这些概念之前,还得先回顾一些基础的概念。 1 基础知识回顾 注意:咱们下面说的都是Linux环境下,跟Windows不一样哈~~~ 1.1 用户空间和内核空间 现在操作系统都采用虚拟寻址, 阅读全文
posted @ 2019-03-04 15:26 Ellisonzhang 阅读(332) 评论(0) 推荐(0)
摘要: 从计算机硬件角度: 计算机的核心是CPU,承担了所有的计算任务。一个CPU,在一个时间切片里只能运行一个程序。 从操作系统的角度: 进程和线程,都是一种CPU的执行单元。 进程:表示一个程序的上下文执行活动(打开、执行、保存...) 线程:进程执行程序时候的最小调度单位(执行a,执行b...) 一个 阅读全文
posted @ 2019-03-04 15:03 Ellisonzhang 阅读(1048) 评论(0) 推荐(0)
摘要: 错误的源代码: import socketimport threadingimport multiprocessing# 创建socketserve_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)serve_socket.bind 阅读全文
posted @ 2019-02-28 21:43 Ellisonzhang 阅读(1200) 评论(0) 推荐(0)
摘要: 模块A中import B,而在模块B中import A。这时会怎么样呢?这个在Python列表中由RobertChen给出了详细解释,抄录如下: 为什么执行A的时候不能加载D呢? 如果将A.py改为:import B就可以了。 这是怎么回事呢? RobertChen:这跟Python内部import 阅读全文
posted @ 2019-02-27 16:18 Ellisonzhang 阅读(1202) 评论(0) 推荐(0)
摘要: socket基于tcp协议的多进程聊天(异步) server端代码 client端代码 先运行server程序,在运行client程序,执行结果为 锁 —— multiprocess.Lock 通过之前的学习,实现了程序的异步,让多个任务可以同时在几个进程中并发处理,他们之间的运行没有顺序,一旦开启 阅读全文
posted @ 2019-02-27 15:23 Ellisonzhang 阅读(183) 评论(0) 推荐(0)
摘要: 加锁 join方法 join方法会造成阻塞,在上一个进程完成之前不会运行join()后面的代码 lock 仍会执行之后的代码,遇到创建进程,会发向操作系统发出指令,但不会执行,等到上锁的进程结束之后,立即执行. 阅读全文
posted @ 2019-02-27 11:26 Ellisonzhang 阅读(340) 评论(0) 推荐(0)
摘要: 1. 文档是最先需要了解的,读完文档可能会有很多的意外的收获同时也会留下疑惑,对于一般的使用我觉得读完文档就差不多了,除非一些很有疑惑的地方你可能需要再深入的了解一下。我读文档的目的第一个就是为了找出疑惑然后带着疑惑去读源码,还有一个目的就是为了后面读源码提供指导。 2. multiprocessi 阅读全文
posted @ 2019-02-26 21:51 Ellisonzhang 阅读(1197) 评论(0) 推荐(0)
摘要: 序. multiprocessingpython中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程。Python提供了非常好用的多进程包multiprocessing,只需要定义一个函数,Python会完成其他所有事情。借助这个包,可以轻松 阅读全文
posted @ 2019-02-26 21:43 Ellisonzhang 阅读(206) 评论(0) 推荐(0)
摘要: 1、进程的概念什么是进程—>CPU在同一时刻只能处理一个任务,只是因为cpu执行速度很快。 cpu在各个任务之间来回的进行切换。 进程的概念:正在进行的一个过程或者说一个任务,而负责执行任务的则是CPU,进程本身是 一个抽象的概念,即进程就是一个过程、一个任务。 CPU描述的是一个程序的执行过程. 阅读全文
posted @ 2019-02-26 21:39 Ellisonzhang 阅读(510) 评论(0) 推荐(0)
摘要: windows在启动子进程的时候会将主进程文件倒入到子进程中。导入模块就相当于执行这个模块中的代码, 所以第一个print会在主进程中执行一次,又在被导入的过程中在子进程中又执行了一次。 p.start()过程中会调用一次当前模块 注意:在windows中Process()必须放到# if __na 阅读全文
posted @ 2019-02-26 21:19 Ellisonzhang 阅读(530) 评论(0) 推荐(0)