自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 TCP和UDP

1. TCP和UDP的区别(1)、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接(2)、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付, Tcp通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行...

2019-01-23 09:51:02 129

原创 Python(进程间通信)

1. 队列import multiprocessing# 线程通信=====(队列) ---- from queue import Queue# 进程池中进程通信=====(队列) --- from multiprocess.Manager import Queue# 多进程通信=====(队列) ---- from multiprocess import Queueimport tim...

2019-01-22 22:53:31 946

原创 Python(进程池)

1. 什么是进程池1.1 在使用Python进行系统管理时,特别是同时操作多个文件目录或者远程控制多台主机,并行操作可以节约大 量时间,如果操作的对象数目不大时,还可以直接适用Process类动态生成多个进程,几十个尚可,若上百个 甚至更多时,手动限制进程数量就显得特别繁琐,此时进程池就显得尤为重要。 进程池Pool类可以提供指定数量的进程供用户调用,当有新的请求提交至Pool中时,...

2019-01-22 22:34:19 247

原创 Python(进程锁)

1. 为什么要使用进程锁1.1 当使用多进程对同一共享资源进行使用时,可能会出现各种问题,例如数据写入文件时顺序错误、当进程需要依 次修改同一个数据时,第一个进程还未完成修改,第二个进程就读取未经修改的数据进行修改。2. 如何实现进程锁2.1import multiprocessingdef work(f, item, lock): # 2). 开始此任务前,为防止数据写...

2019-01-22 22:25:06 985

原创 Python(进程)

1. 如何创建进程 1.1 Unix/Linux操作系统提供了一个fork()系统调用,它非常特殊。普通的函数调用,调用一次,返回一次,但是fork()调用一次,返回两次,因为操作系统自动把当前进程(称为父进程)复制了一份(称为子进程),然后,分别在父进程和子进程内返回。 1.2 子进程永远返回0,而父进程返回子进程的ID。这样做的理由是,一个父进程可以fork出很多子进程,所以,父进程...

2019-01-22 22:03:08 84

原创 Python(跨平台实现多进程)

1. 什么是跨平台1.1 如果你打算编写多进程的服务程序,Unix/Linux无疑是正确的选择。由于Windows没有fork调用,难道在Windows 上无法用Python编写多进程的程序? 由于Python是跨平台的,自然也应该提供一个跨平台的多进程支持。multiprocessing模块就是跨平台版本的多进程 模块。2. 什么是multiprocessing2.1 mul...

2019-01-22 21:41:51 1509

原创 Python(线程池)

1. 什么是线程池 官方解释:线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。如果某个线程在托管代码中空闲(如正在等待某个事件),则线程池将插入另一个辅助线程来使所有处理器保持繁忙。如果所有线程池线程都始终保持繁忙,但队列中包含挂起的工作,则线程池将在一段...

2019-01-21 19:39:41 761

原创 Python(类的继承实现生产者-消费者模型)

1. 什么是生产者-消费者模型某个模块专门负责身缠数据, 可以认为是工厂;另外一个模块负责对生产的数据进行处理的, 可以认为是消费者.在生产者和消费者之间加个缓冲区(队列queue实现), 可以认为是商店. 生产者 > 缓冲区(队列) > 消费者2. 使用队列的优点1. 解耦:生产者和消费者的依赖关系减少;2. 支持并发;是两个独立的个体, 可并发执行;3. 需求...

2019-01-21 19:17:44 265

原创 Python(线程锁)

1. 为什么要设置线程锁1.1 多个线程对同一个数据进行修改时,可能会出现不可预料的情况.2. 如何实现线程锁2.1 实例化对象方式实现线程锁:import threading# 银行存钱和取钱def add(lock): global money # 声明money为全局变量 for i in range(1000000): # 2. 操作...

2019-01-21 18:55:18 216

原创 Python(队列与线程)

1. 队列的理解1.1 什么是队列: 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和 栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。1.2 为什么要使用队列: 当使用多线程时,一个或多个线程生产数据,另一个或多个线程处理数据,如果生产数据与处理数据速率不匹配时,使用队列...

2019-01-19 23:54:23 258

原创 Python(多线程时间监测)

1. 引入第三方模块1.1 import threading import time2. 实现timeit方法(函数运行时间)2.1 def timeit(f): def wrapper(*args, **kwargs): start_time = time.time() res = f(*args, **kwargs) end_t...

2019-01-19 22:47:33 3393

原创 Python(多线程实现下载器)

1. 引入第三方模块1.1 引入threading模块: import threading1.2 引入urlopen: from urllib.request import urlopen2. 创建DownLoadThread类2.1 class DownLoadThread(threading.Thread): //继承threading.Thread类 def _...

2019-01-19 22:34:00 1962

原创 Python(函数运行时间监测)

1. 导入第三方模块1.1 导入time模块: import time1.2 实现timeit方法:def timeit(f): def wrapper(*args, **kwargs): //*args:接收多个参数;**kwargs:关键字传参,接收多个参数 start_time = time.time() //函数开始运行时间 res =...

2019-01-19 22:00:33 6710

原创 Python(下载器)

1. 引入第三方模块1.1 引入urlopen: from urllib.request import urlopen2. 实现下载器2.1 def download(url): try: imgContent = urlopen(url, timeout=3).read() //将网络文件保存在imgContent中(当文件较小时可以使用,当文件较大时不...

2019-01-19 20:11:11 699

原创 Python(线程的理解与实现)

1. 线程的理解1.1. 重要的概念: 程序: /bin/firefox是一个二进制程序, (eg:python, Java程序), 是一个真实存在的, 可以看到的实体; 进程: 执行程序的过程中产生的一系列内容,(计算机给进程分配了内存, cpu等.....) 线程: 执行进程的最小单元,一个进程里必然有一个主线程 操作线程的模块:thread、threading1.2 专业的总结:...

2019-01-18 23:28:53 122

原创 Python (paramiko的再次封装)

1. 导入第三方模块1.1 导入os: import os1.2 导入sys: import sys1.3 导入paramiko import paramiko2. 建立SShRemoteHost2.1 class SshRemoteHost(object):3. 实现__init__方法 def __init__(self, host, user, pwd, cmd...

2019-01-18 22:54:09 1527

原创 Python(基于用户名和密码上传和下载文件)

1. 导入第三方模块1.1 import paramiko //导入paramiko1.2 from paramiko import AuthenticationException, SSHException //导入AuthenticationException, SSHException 1.3 import logging //导入logging,用于生成日志2....

2019-01-18 22:17:31 1767

原创 MYSQL(表的操作)

1. 表的操作1.1 创建表 (1)在数据库中的表目录下单击鼠标右键,选择创建表 (2)填入表名称、列名、数据类型、长度(字符串长度)、勾选主键(一般为一个) (3)点击保存1.2 添加表数据 (1)右键想要添加数据的表 (2)左键双击想要添加数据的表格位置 (3)输入添加的数据 (4)点击保存1.2 查询表信息 (1)select 列名(*表示所有列,当有多个列时用,...

2019-01-07 19:27:23 812

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除