
thread
Pinkmanabcd
这个作者很懒,什么都没留下…
展开
-
multuprocessing模块创建进程
multuprocessing模块创建进程步骤1.需要将要执行的事情封装为函数2.使用multiprocessing模块中Process类创建进程对象3.通过对象属性设置和Process的初始化函数对进程进行设置,绑定要执行的函数4.启动进程,会自动执行进程绑定的函数5.完成进程的回收模块内容介绍1.Process() 功能: 创建进程对象 参数: name 进程名...原创 2019-07-12 19:12:23 · 279 阅读 · 0 评论 -
进程与线程的区别和联系
进程和线程的区别和联系1.两者都是多任务编程方式,都能够使用计算机的多核资源2.进程的创建删除消耗的计算机资源比线程要多3.进程空间独立,数据相互不干扰,有专门的IPC(进程间通信),线程使用全局变量进行通信4.一个进程可以创建多个线程分支,两者之间存在包含关系5.多个线程公用进程的资源,在资源操作时往往需要同步互斥6.进程线程在系统中都有自己特有的属性,ID,代码段,栈区等资源...原创 2019-07-17 10:39:50 · 157 阅读 · 0 评论 -
python多线程的GIL锁
python线程的GIL问题(全局解释器锁)来源:python-->支持多线程-->同步互斥-->加锁-->超级锁,给解释器加锁-->解释器同一时刻只能解释一个线程后果:一个解释器同一时刻只能解释执行一个线程,所以导致python线程效率低下。但是当遇到IO阻塞时线程会主动让出解释器,因此python线程更加适合高延迟的IO程序并发。解决方法: * ...原创 2019-07-17 00:31:52 · 257 阅读 · 0 评论 -
多人网络聊天室实现
项目需求:功能:类似qq群聊、linux环境下1.进入聊天室需要输入姓名,姓名不能重复2.有人进入聊天室会向其他人发送通知:xxx进入了聊天室3.一个人发消息,其他人会收到消息 xxx 说: xxxxxx4.某人退出聊天室,其他人也会收到通知 xxx退出了聊天室5.管理员喊话 服务端发送消息给所有的客户端都收到 管理员说:xxxxxx项目分析:项目问题:* 服务端...原创 2019-07-12 16:38:43 · 1179 阅读 · 0 评论 -
线程间的通信
线程通信通信方法: 多个线程共享进程的空间,所以线程间通信使用全局变量完成。注意事项:线程使用全局变量往往要同步互斥机制保证通信安全线程同步互斥方法:线程的Evente = threading.Event() 创建事件对象e.wait([timeout]) 如果e为设置状态则不阻塞否则阻塞e.set() 将e变为设置状态e.clear() 清楚设置线程锁lock =...原创 2019-07-16 20:18:10 · 134 阅读 · 0 评论 -
自定义线程类
自定义线程类1.继承Thread2.加载Thread中的__init__方法3.重写run方法自定义类的简单实现#自定义线程类from threading import Threadfrom time import sleep,ctimeclass MyThread(Thread): def __init__(self,target,name = 'Thread',arg...原创 2019-07-16 19:20:31 · 273 阅读 · 0 评论 -
多任务编程之线程
线程线程也是一种多任务编程方法,也是可以利用计算机多核资源完成程序的并发执行。线程又被称为轻量级的进程。线程特征 * 线程是计算机多核分配的最小单位 * 一个进程可以包含多个线程 * 线程也是一个运行的过程,消耗计算机资源,多个线程共享进程的资源和空间 * 线程的创建删除消耗的资源都要远远小于进程 * 多个线程之间执行互不干扰 * 线程也有自己的特有属性,比如指令集 ID...原创 2019-07-16 18:57:21 · 164 阅读 · 0 评论 -
python中协程的使用
协程基础定义: 协程,微线程。协程的本质是一个单线程程序,所以协程不能使用计算机多核资源。作用: 能够高效的完成并发任务,占用较少的资源。 因此协程的并发量较高原理: 通过记录应用层的上下文栈区,实现在运行中进行上下文跳转,达到可以选择性地运行想要运行的部分,以此提高程序的运行效率。优点: 消耗资源少 无需切换开销 无需同步互斥 IO并发性好缺点: 无法利用计...原创 2019-07-18 18:21:16 · 200 阅读 · 0 评论 -
python3中Thread.setDeamon的使用
setDaemon语法: obj.setDaemon(True)个人理解: * 需要在start之前使用 * 主线程被创建时默认为False,所以子线程要设置时需要手动设置 * Daemon意思为守护线程,用来回收线程,当主线程运行结束时,会被子线程杀死官方文档:setDaemon() Old API for daemon. A boolea...原创 2019-07-18 17:21:21 · 1686 阅读 · 0 评论 -
python的多任务编程实现
多进程编程import ospid = os.fork()功能:创建新的进程参数:无返回值:失败返回一个负数 成功:在原有进程中返回新的进程的PID号 在新的进程中返回0fork函数演示于进程的特征一般情况下父进程在子进程之前运行#此程序演示多进程编程中fork函数以及进程的特征import osfrom time import slee...原创 2019-07-12 00:13:51 · 203 阅读 · 0 评论 -
多线程并发构建基础服务器
多线程并发threading的多线程并发对比多进程并发: * 消耗资源较少 * 线程应该更注意共享资源的操作 * 在python中应该注意GIL问题,网络延迟较高,线程并发也是一种可行的方法实现步骤: 1. 创建套接字,绑定监听 2. 接收客户端请求,创建新的线程 3. 主线程继续接收其他客户端连接 4. 分支线程启动对应的函数处理客户端请求 5. 当客户端断开,则...原创 2019-07-18 12:44:50 · 180 阅读 · 0 评论 -
python的信号量机制
信号通信一个进程向另一个进程发送一个信号来传递某种信息,接收者根据接收到的信号进行相应的行为终端命令:kill -l 查看系统信号kill -sig PID 向一个进程发送信号信号介绍:信号名称 信号含义 默认处理方法SIGHUP 连接断开SIGINT CTRL-CSIGQUIT CTRL-\SIGTSTP CTRL-ZSIGKILL 终止一个进程...原创 2019-07-15 19:11:09 · 3872 阅读 · 1 评论 -
进程间的消息传输:管道、消息队列、共享内存
进程间通信(IPC) 原因:进程空间相对独立,资源无法相互获取,此时在不同进程间通信需要专门方法。 进程间通信方法:管道 消息队列 共享内存 信号 信号量套接字管道通信 Pipe通信原理:在内存中开辟管道空间,生成管道操作对象,多个进程使用“同一个”管道对象进行操作即可实现通信multiprocessing--》 Pipefd1,fd2 = Pipe(duplex =...原创 2019-07-15 17:58:21 · 255 阅读 · 0 评论 -
进程池技术实现
多进程优点: 可以使用计算机多核,进行任务的并发执行,提高执行效率 空间独立,数据安全 运行不受其他进程影响,创建方便 缺点: 进程的创建和删除消耗的系统资源较多进程池技术1、产生原因:如果有大量任务需要多进程完成,则可能需要频繁的创建和删除进程,给计算机带来较多的资源消耗。原理: 创建适当的进程放入进程池,用来处理待处理事件,处理完毕后进程不销毁,仍然在进程...原创 2019-07-15 13:00:41 · 730 阅读 · 0 评论 -
自定义进程类
Process进程的对象属性p.start()p.join()p.is_alive() 判断进程生命周期状态,处于生命周期得到Truep.name 进程名称,默认为Process-1/2.....p.pid 进程的pid号p.daemon 默认状态False 主进程退出不会影响子进程执行如果设置为True 则子进程会随着主进程结束而结束* 要在start前设置* 一...原创 2019-07-15 12:29:37 · 370 阅读 · 0 评论 -
多任务编程概念
多任务编程意义:充分利用计算机的资源提高程序的运行效率定义:通过应用程序利用计算机的多个核心达到同时执行多个任务的目的,一次提高计算机运行效率。实施方案:多进程 多线程并行多个计算机核心在同时处理多个任务,这时多个任务间是并行关系。并发同时处理多个任务,内核在多个任务间不断的切换,达到好像都在处理运行的效果。但实际一个时间点内核只能处理其中一个任务。进程(Process)定义:...原创 2019-07-09 20:16:29 · 499 阅读 · 0 评论 -
多进程并发的基础web服务器模型搭建
服务器模型硬件服务器: 主机 集群厂商: IBM HP 联想 浪潮软件服务器: 编写的服务端应用程序,在硬件服务器上运行,一般依托于操作系统,给用户提供一套完整的服务httpserver ---> 处理http请求webserver ---> 网站的后端应用服务器程序邮箱服务器 ---> 邮件处理ftp文件服务器 --> 文件的上传下载功能:网络...原创 2019-07-17 13:44:54 · 423 阅读 · 0 评论