2019年7月8日

IO 模式

摘要: #IO 模式 对于 Linux 的 network IO: 一次 IO 访问(以read举例),数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区 copy 到应用程序的地址空间。所以说,当一个 read 操作发生时,它会经历两个阶段: 等待数据准备 (Waiting for t 阅读全文

posted @ 2019-07-08 09:31 doubtful 阅读(506) 评论(0) 推荐(0) 编辑

Python selectors

摘要: selectors 封装了 select 和 epoll,默认使用 epoll,如果无法使用 epoll 就换成 select select 和 epoll 为 [IO多路复用的方式 :"), encoding="utf8") s.sendall(msg) data = s.recv(1024) p 阅读全文

posted @ 2019-07-08 09:29 doubtful 阅读(335) 评论(0) 推荐(0) 编辑

2019年7月6日

Python 协程 (Coroutine)

摘要: 协程 (Coroutine) 什么是协程 协程(微线程)是比线程更轻量化的存在,像一个进程可以拥有多个线程一样,一个线程也可以拥有多个协程 最重要的是,协程不是被操作系统内核所管理,而完全是由程序所控制 如何判断 必须在只有一个单线程里实现并发 修改共享数据不需加锁 用户程序里自己保存多个控制流的上 阅读全文

posted @ 2019-07-06 17:09 doubtful 阅读(3508) 评论(0) 推荐(0) 编辑

2019年7月3日

Python thread & process

摘要: 线程 [点击查看 阅读全文

posted @ 2019-07-03 16:05 doubtful 阅读(282) 评论(0) 推荐(0) 编辑

Python process (进程)

摘要: 进程 (process) 进程是对各种资源管理的集合,包含对各种资源的调用、内存的管理、网络接口的调用 进程要操作 CPU 必须先启动一个线程,启动一个进程的时候会自动创建一个线程,进程里的第一个线程就是主线程 程序执行的实例 有唯一的进程标识符(pid) multiprossing 模块 启动进程 阅读全文

posted @ 2019-07-03 15:59 doubtful 阅读(15589) 评论(0) 推荐(0) 编辑

Python thread (线程)

摘要: 线程 (thread) 操作系统最小的调度单位,是一串指令的集合 程序一开始就有一个主线程,新启动的线程和主线程之间互不影响,主线程启动子线程之后就相互独立(子线程也可以启动线程),无论子线程是否执行结束主线程都会继续执行,程序在所有线程执行结束后关闭 全局解释器锁 (GIL) 由于无法控制线程执行 阅读全文

posted @ 2019-07-03 15:56 doubtful 阅读(1359) 评论(0) 推荐(0) 编辑

2019年7月2日

Python queue (队列)

摘要: queue (队列) 主要作用 1. 解耦,使程序实现松耦合(一个模块修改不会影响其他模块) 2. 提高效率 队列与列表的关系 队列中数据只有一份,取出就没有了,区别于列表,列表数据取出只是复制了一份 分类 FIFO (先入先出) queue.Queue(maxsize=0) 示例: 输出结果: 1 阅读全文

posted @ 2019-07-02 09:47 doubtful 阅读(37897) 评论(3) 推荐(1) 编辑

2019年7月1日

Python paramiko 报错 paramiko.ssh_exception.SSHException: not a valid RSA private key file

摘要: 报错的原因是选择的文件不是一个有效的 RSA 密钥文件 现在通过 默认生成的密钥文件是新的格式,并非 RSA 格式。打开文件可以看到是以 开头的,模块无法识别。 解决方法 生成时指定格式: 通过 命令生成 RSA 格式的密钥对 ssh keygen 参数 :参数指定密钥的格式,PEM(也就是 RSA 阅读全文

posted @ 2019-07-01 15:22 doubtful 阅读(5918) 评论(0) 推荐(0) 编辑

Python paramiko

摘要: Python 的 paramiko 模块基于 SSH 连接远程服务器并执行操作 SSHClient 基于用户名密码连接 示例: 如果 不使用 ,且 known_hosts 中没有主机信息就会报错: 基于密钥对连接 通过用户名密码连接有许多问题,可以通过公钥私钥连接 连接前需要提前生成密钥对 示例: 阅读全文

posted @ 2019-07-01 15:05 doubtful 阅读(432) 评论(0) 推荐(0) 编辑

2019年6月16日

CentOS7 部署 Django 项目

摘要: 1. 更新系统软件包 2. 安装软件管理包和可能使用的依赖 [3. 安装python3、pip3并建立软连接(添加环境变量)(点击查看)][1] 4. 通过pip安装Django、uwsgi 5. [(新建文件夹用于存放项目)进入指定文件夹,创建Django项目并运行(点击查看)][2] 6. 配置 阅读全文

posted @ 2019-06-16 16:22 doubtful 阅读(712) 评论(2) 推荐(0) 编辑

CentOS7 中创建 Django 项目

摘要: 1. (新建文件夹用于存放项目)进入指定文件夹,创建Django项目 mysite 为项目名称 2. 进入项目文件夹,新建app app01 为 app 名称 3. 新建文件夹 static 和 templates 、`mkdir p templates` 4. 修改项目文件夹中的 setting. 阅读全文

posted @ 2019-06-16 16:11 doubtful 阅读(741) 评论(0) 推荐(0) 编辑

CentOS7 安装 nginx

摘要: 1. 进入下载目录,下载 nginx 并解压: 下载 : nginx 的网址:[http://nginx.org/en/download.html][1] 可以去查看最新版本的下载地址 解压: 2. 进入解压后的 nginx 文件夹,安装 nginx : 配置: 编译: 安装: 3. 修改 ngin 阅读全文

posted @ 2019-06-16 15:49 doubtful 阅读(251) 评论(0) 推荐(0) 编辑

CentOS7 安装 anaconda

摘要: Anaconda是一个开源的Python发行版本,可以帮助我们更方便地配置Python环境。 如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版 0. 开始前 开始前需要更新系统软件包并且安装可能的依赖 更新系统软件包 安装软件管理包和可能使用的依赖 1. 下 阅读全文

posted @ 2019-06-16 15:38 doubtful 阅读(5356) 评论(0) 推荐(0) 编辑

2019年6月10日

Python socket & socket server

摘要: socket 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket(套接字)。 建立网络通信连接至少要一对socket。socket是对TCP/IP的封装 使用方法 步骤: 服务器端: 1. 实例化类 2. bind 绑定端口 3. listen 监听端口 4. 阅读全文

posted @ 2019-06-10 14:45 doubtful 阅读(214) 评论(0) 推荐(0) 编辑

2019年6月8日

Python Singleton Pattern(单例模式)

摘要: 简介 单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。 当一个类中的静态的值被反复调用时会造成浪费,就可以采用单例模式 实现 原理 示例: 注意: 这样会造成 阅读全文

posted @ 2019-06-08 22:25 doubtful 阅读(471) 评论(0) 推荐(1) 编辑

导航