码迷,mamicode.com
首页 > 其他好文 > 详细

网络并发

时间:2019-01-08 19:12:24      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:思考   proc   key   发送   调试   使用   时间   span   客户端   

一、关于multiprocessing (关于进程的模块)模块Process方法

参数介绍:

targe:表示调用对象,即子进程要执行的任务

args:表示调用对象的位置参数元组,args=(1,"engo")

kwargs:表示调用对象的字典,kwargs={"name":"egon",,"age":18}

方法介绍:

p.start() 启动进程,并调用该子进程中的p.run()

p.run() 进程启动时运行的方法,正是他去调用target指定的函数,我们自定义类的类中必须重新定义.

p.join([timeout]) 主线程等待p终止(是主线程处于等的状态,而p是处于运行的状态),timeout是可选的超时时间.

 

from multiprocessing import Process
import time
def f1(): time.sleep(3) print("123") def f2(): time.sleep(3) print("撒拉嘿") #windows系统下,必须在代码中写main,否则会出现递归开启进程,报错(在系统创建一个子进程时,会import这个主进程的所有代码) if __name__ == __main__: p1 = Process(target = f1,) #创建进程对象 p2 = Process(target = f2,) #创建进程对象
p1.start() #给操作系统发送创建进程信号,后续进程的执行则由操作系统来决定 p2.start()

 Process方法传参的方式(常用):

from multiprocessing import Process
def f1(n):
    print(n)
if __name__ == __main__:
    # p1 = Process(target=f1,args=(‘大力与奇迹‘,)) #创建进程对象,第一种传参方式
    p1 = Process(target=f1,kwargs={n:大力}) #字典key必须跟函数的形参名一致.创建进程对象,第二种传参方式
    p1.start()  #给操作系统发送了一个创建进程的信号,后续进程的创建都是操作系统的事儿了

 

 Process方法传参的第二种方式,自己定义类时>>>:

class MyProcess(Process):
    def __init__(self,n):#自己定义的类,必须继承Process
        super().__init__()  #必须执行父类的init
        self.n = n
    def run(self):  #必须重新定义run方法
        print(小黑and%s不可告人的事情%self.n)
if __name__ == __main__:
    p1 = MyProcess(小白)
    p1.start()

 二、关于join方法

join方法有什么用:

情况一:在主进程的任务与子进程的任务彼此独立的情况下,主进程的任务先执行完毕后,主进程还需要等待子进程执行完毕,然后统一回收资源

情况二:如果主进程的任务在执行到某一个阶段时,需要等待进程执行完毕后才能继续执行,就需要有一种机制能够让主进程检测进程是否运行完毕,

在子进程执行完毕后才继续执行,否则一直在原地阻塞.

三、多道技术:

产生的背景:多道技术产生的背景是第二代计算机的操作系统对cpu利用效率不高的状况

什么是多道技术:

  多道指的是多个程序,多道技术的实现是为了解决多个程序竞争或者说共享同一个资源(比如cpu)的有序调度问题,解决方式即多路复用,

  多路复用分为时间上和空间上的多路复用.

空间上的复用:

  将内存分为几部分,每个部分放入一个程序,这样,同一时间内存中就有多道程序.

时间上的复用:

  当一个程序i/o(阻塞)时,另一个程序可以使用cpu;一个进程占用cpu时间过长也会切换,或者说被操作系统夺走cpu的执行权限.

四、分时操作系统:

产生的背景:第二代计算机不能满足程序员们,在调试自己程序时,能很快可以得到响应.出现了分时操作系统.

什么是分时操作系统:

  多个联机终端+多道技术

  20个客户端同时加载到内存,有17个在思考,3个在运行,cpu就采用多道的方式处理内存中的这3个程序,由于客户提交的一般都是尖端的指令而且很少有耗时长的,

索引计算机能够为许多用户提供快速的交互式服务,所有的用户都以为自己独享了计算机的资源.

五、进程

什么是进程:

  程序的运行过程. 正在进行的一个过程或者说一个任务,而负责执行任务则是cpu

什么是并发:

  是伪并行,即:看起来是同时运行.(单个cpu+多道技术就可以实现并发)

什么是并行:

  同时运行,只有具备多个cpu才能实现并行.

六、操作系统如何实现的并发(了解即可)

    硬件中断一个正在运行的进程,把此时进程运行的所有状态保存下来,为此,操作系统维护一张表格,即进程表,每个进程占用一个进程表项(也称为进程控制块)

  以此来保存进程由运行态转为就绪态或阻塞态时,必须保存的信息,从而保证该进程再次启动时,就像从而被中断过一样.

 

网络并发

标签:思考   proc   key   发送   调试   使用   时间   span   客户端   

原文地址:https://www.cnblogs.com/lgw1171435560/p/10238357.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!