
Python
qq_39981493
这个作者很懒,什么都没留下…
展开
-
Python并发编程1——进程的基本概念
并发编程多任务编程意义: 充分利用计算机多核资源,提高程序的运行效率。实现方案 :多进程 , 多线程并行与并发并发 : 同时处理多个任务,内核在任务间不断的切换达到好像多个任务被同时执行的效果,实际每个时刻只有一个任务占有内核。并行 : 多个任务利用计算机多核资源在同时执行,此时多个任务间为并行关系。进程(process)进程理论基础定义 : 程序在计算...转载 2019-05-15 15:55:49 · 226 阅读 · 0 评论 -
Python并发编程7——线程编程(1) 基本概念及基本代码实现
线程编程(Thread)线程基本概念什么是线程【1】 线程被称为轻量级的进程【2】 线程也可以使用计算机多核资源,是多任务编程方式【3】 线程是系统分配内核的最小单元【4】 线程可以理解为进程的分支任务线程特征【1】 一个进程中可以包含多个线程【2】 线程也是一个运行行为,消耗计算机资源【3】 一个进程中的所有线程共享这个进程的资源【4】 多个线程之间的运行互不影响各...转载 2019-05-15 16:51:13 · 176 阅读 · 0 评论 -
Python并发编程6——基于fork的聊天室小程序
1、服务端代码from socket import *import os, sys# 服务器地址ADDR = ('0.0.0.0', 8888)# 存储用户信息user = {}# 进入聊天室def do_login(s,name,addr): if name in user or "管理员" in name: s.sendto("\n该用户已存在"....转载 2019-05-15 16:32:37 · 226 阅读 · 0 评论 -
Python并发编程5——进程间通信(5) 信号量
信号量(信号灯集)通信原理给定一个数量对多个进程可见。多个进程都可以操作该数量增减,并根据数量值决定自己的行为。实现方法from multiprocessing import Semaphoresem = Semaphore(num)功能 : 创建信号量对象参数 : 信号量的初始值返回值 : 信号量对象sem.acquire() 将信号量减1 当信号量为0时阻塞...转载 2019-05-15 16:26:55 · 713 阅读 · 0 评论 -
Python并发编程5——进程间通信(4) 本地套接字
本地套接字功能 : 用于本地两个程序之间进行数据的收发套接字文件 :用于本地套接字之间通信时,进行数据传输的介质。创建本地套接字流程【1】 创建本地套接字sockfd = socket(AF_UNIX,SOCK_STREAM)【2】 绑定本地套接字文件sockfd.bind(file)【3】 监听,接收客户端连接,消息收发listen()–>accep...转载 2019-05-15 16:24:00 · 600 阅读 · 0 评论 -
Python并发编程5——进程间通信(3) 共享内存
共享内存通信原理:在内中开辟一块空间,进程可以写入内容和读取内容完成通信,但是每次写入内容会覆盖之前内容。实现方法from multiprocessing import Value,Arrayobj = Value(ctype,data)功能 : 开辟共享内存参数 : ctype 表示共享内存空间类型 'i' 'f' 'c' data 共享内存空间初始数据...转载 2019-05-15 16:21:28 · 2347 阅读 · 1 评论 -
Python并发编程5——进程间通信(2) 消息队列
消息队列1.通信原理在内存中建立队列模型,进程通过队列将消息存入,或者从队列取出完成进程间通信。实现方法 from multiprocessing import Queue q = Queue(maxsize=0) 功能: 创建队列对象 参数:最多存放消息个数 返回值:队列对象 q.put(data,[block,timeout]) 功能:向队列存入消息 参数...转载 2019-05-15 16:11:36 · 169 阅读 · 0 评论 -
Python并发编程5——进程间通信(1) 管道通信
进程间通信(IPC)必要性: 进程间空间独立,资源不共享,此时在需要进程间数据传输时就需要特定的手段进行数据通信。常用进程间通信方法管道 消息队列 共享内存 信号 信号量 套接字管道通信(Pipe)通信原理在内存中开辟管道空间,生成管道操作对象,多个进程使用同一个管道对象进行读写即可实现通信实现方法from multiprocessing i...转载 2019-05-15 16:06:49 · 250 阅读 · 0 评论 -
Python并发编程4——进程池实现
进程池实现必要性【1】 进程的创建和销毁过程消耗的资源较多【2】 当任务量众多,每个任务在很短时间内完成时,需要频繁的创建和销毁进程。此时对计算机压力较大【3】 进程池技术很好的解决了以上问题。原理创建一定数量的进程来处理事件,事件处理完进 程不退出而是继续处理其他事件,直到所有事件全都处理完毕统一销毁。增加进程的重复利用,降低资源消耗。进程池实现【1】 创建进...转载 2019-05-15 16:02:25 · 172 阅读 · 0 评论 -
Python并发编程3——multiprocessing模块创建进程
multiprocessing 模块创建进程进程创建方法流程特点【1】 将需要子进程执行的事件封装为函数【2】 通过模块的Process类创建进程对象,关联函数【3】 可以通过进程对象设置进程信息及属性【4】 通过进程对象调用start启动进程【5】 通过进程对象调用join回收进程基本接口使用Process()功能 : 创建进程对象参数 : target 绑定要...转载 2019-05-15 15:59:42 · 290 阅读 · 0 评论 -
Python并发编程2——基于fork的多进程编程
基于fork的多进程编程fork使用pid = os.fork()功能: 创建新的进程返回值:整数,如果创建进程失败返回一个负数,如果成功则在原有进程中返回新进程的PID,在新进程中返回0注意子进程会复制父进程全部内存空间,从fork下一句开始执行。父子进程各自独立运行,运行顺序不一定。利用父子进程fork返回值的区别,配合if结构让父子进程执行不同的内容几乎是固定搭配。...转载 2019-05-15 15:55:23 · 323 阅读 · 0 评论