摘要: udp客户端 #_*_coding:utf-8_*___author__ = 'Linhaifeng'import socketip_port=('127.0.0.1',9000)BUFSIZE=1024udp_server_client=socket.socket(socket.AF_INET,s 阅读全文
posted @ 2017-07-03 16:15 昂达达 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 基于tcp的套接字,关键就是两个循环,一个链接循环,一个通信循环 socketserver模块中分两大类:server类(解决链接问题)和request类(解决通信问题) server类: request类: 继承关系: 以下述代码为例,分析socketserver源码: 查找属性的顺序:Threa 阅读全文
posted @ 2017-07-03 16:13 昂达达 阅读(219) 评论(2) 推荐(0) 编辑
摘要: Gevent 是一个第三方库,可以轻松通过gevent实现并发同步或异步编程,在gevent中用到的主要模式是Greenlet, 它是以C扩展模块形式接入Python的轻量级协程。 Greenlet全部运行在主程序操作系统进程的内部,但它们被协作式地调度。 g1=gevent.spawn()创建一个 阅读全文
posted @ 2017-07-03 16:08 昂达达 阅读(320) 评论(3) 推荐(0) 编辑
摘要: reenlet是一个用C实现的协程模块,相比与python自带的yield,它可以使你在任意函数之间随意切换,而不需把这个函数先声明为generator 单纯的切换(在没有io的情况下或者没有重复开辟内存空间的操作),反而会降低程序的执行速度 greenlet只是提供了一种比generator更加便 阅读全文
posted @ 2017-07-03 16:05 昂达达 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 协程:是单线程下的并发,又称微线程,纤程。英文名Coroutine。一句话说明什么是线程:协程是一种用户态的轻量级线程,即协程是由用户程序自己控制调度的。 需要强调的是: 1. python的线程属于内核级别的,即由操作系统控制调度(如单线程一旦遇到io就被迫交出cpu执行权限,切换其他线程运行) 阅读全文
posted @ 2017-07-03 16:04 昂达达 阅读(232) 评论(0) 推荐(0) 编辑
摘要: paramiko模块 SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: import paramiko # 创建SSH对象ssh = paramiko.SSHClient()# 允许连接不在know_hosts文件中的主机ssh.set_missing_host_key_p 阅读全文
posted @ 2017-07-03 16:02 昂达达 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 分为 先进先出, 后进先出, 和优先级 3种情况 queue队列 :使用import queue,用法与进程Queue一样 queue is especially useful in threaded programming when information must be exchanged sa 阅读全文
posted @ 2017-07-03 16:00 昂达达 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 同进程的一样 线程的一个关键特性是每个线程都是独立运行且状态不可预测。如果程序中的其 他线程需要通过判断某个线程的状态来确定自己下一步的操作,这时线程同步问题就 会变得非常棘手。为了解决这些问题,我们需要使用threading库中的Event对象。 对象包含一个可由线程设置的信号标志,它允许线程等待 阅读全文
posted @ 2017-07-03 15:58 昂达达 阅读(325) 评论(0) 推荐(0) 编辑
摘要: ########可以理解成 同时拥有N把 一样的锁 同进程的一样 Semaphore管理一个内置的计数器,每当调用acquire()时内置计数器-1;调用release() 时内置计数器+1;计数器不能小于0;当计数器为0时,acquire()将阻塞线程直到其他线程调用release()。 实例:( 阅读全文
posted @ 2017-07-03 15:37 昂达达 阅读(140) 评论(0) 推荐(0) 编辑
摘要: python大部分框架都帮我们封装好 锁了,所以我们就简单研究下 锁通常被用来实现对共享资源的同步访问。为每一个共享资源创建一个Lock对象,当你需要访问该资源时,调用acquire方法来获取锁对象(如果其它线程已经获得了该锁,则当前线程需等待其被释放),待资源访问完后,再调用release方法释放 阅读全文
posted @ 2017-07-03 15:36 昂达达 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 首先需要明确的一点是GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念。就好比C++是一套语言(语法)标准,但是可以用不同的编译器来编译成可执行代码。有名的编译器例如GCC,INTEL C++,Visual C++等。Python也一样,同样一段代码可以 阅读全文
posted @ 2017-07-03 15:31 昂达达 阅读(217) 评论(2) 推荐(0) 编辑
摘要: 三个任务,一个接收用户输入,一个将用户输入的内容格式化成大写,一个将格式化后的结果存入文件 阅读全文
posted @ 2017-07-03 15:28 昂达达 阅读(298) 评论(0) 推荐(0) 编辑
摘要: ############server端 阅读全文
posted @ 2017-07-03 15:27 昂达达 阅读(144) 评论(0) 推荐(0) 编辑
摘要: threading模块 multiprocess模块的完全模仿了threading模块的接口,二者在使用层面,有很大的相似性,因而不再详细介绍 阅读全文
posted @ 2017-07-03 15:25 昂达达 阅读(204) 评论(0) 推荐(0) 编辑