多任务,多进程

落花浮王杯 提交于 2020-01-18 05:29:41

多任务

多任务就是同一时刻多个任务同时执行,例如开演唱会时明星一边唱歌一边跳舞,开车时眼 睛看路手操作方向盘。这些都是多任务场景。对于电脑来说多任务就是同时运行多个应用程序,例如qq、微信、浏览器等等同时在电脑上 运行。
那多任务用代码怎么实现呢?
直接上代码 最好linux运行

#windowns 不支持 linux 支持
import os
import time
ret=os.fork()
if ret==0:
    while True:
        print("-----1-----")
        time.sleep(1)
else:
    while True:
        print("-----2-----")
        time.sleep(1)
#gitpid 得到自己的进程号  getppid 得到父类的进程号

父子进程先后顺序

import os
import time
t=os.fork()
if t==0:
    print("------子进程----")
    time.sleep(5)
    print("-----子进程over----",end="")
else:
    print("-----父进程-----") #父进程不会因为子进程没进行完而等

什么是进程

我们想通过酷我听歌,具体的过程应该是先找到酷我应用程序,然后双击就会播放音乐。 当我们双击的时候,操作系统将程序装载到内存中,操作系统为它分配资源,然后才能运 行。运行起来的应用程序就称之为进程。也就是说当程序不运行的时候我们称之为程序,当 程序运行起来他就是一个进程。通俗的理解就是不运行的时候是程序,运行起来就是进程。 程序和进程的对应关系是:程序只有一个,但是进程可以有多个。

创建进程

#多进程 修改全局变量
import os
import time
g_num=100
t=os.fork()
if t==0:
    print("------子进程----")
    g_num=200
    print("-----子进程over----g_num{}".format(g_num))
else:         #在进程中 全局变量是一定的 父进程不会因为子进程改变了全局变量的值而去改变
    time.sleep(3)
    print("-----父进程-----")
    print("------g_num{}----".format(g_num))

多个fork()

import os
import time
t=os.fork()
if t==0:
    print("------子进程----")
else:
    print("-----父进程-----")
t=os.fork()
if t==0:
    print("------子进程1----")
else:
    print("-----父进程2-----")

用Process创建进程

from multiprocessing import Process
import time
def test():
    while True:
        print("----test----")
        time.sleep(1)
p=Process(target=test)
p.start()#开始进程 让这个进程开始执行test函数里的代码
#主进程会等待子进程先结束
#join("时间")  可以已设置主进程等待时间
while True:
    print("----main----")
    time.sleep(1)

Process子类创建子进程

from multiprocessing import  Process
import time
class mynewProcess(Process):#继承Process 创建进程
    def run(self):
        while True:
            print("----1----")
            time.sleep(1)
p=mynewProcess()
p.start() #调用父类中的start方法 start方法可以调用 run方法
while True:
    print("-----main-----")
    time.sleep(1)

最后来个小游戏 尽量linux下运行

import os
os.fork()
os.fork()
while True:
    os.fork(

拜拜

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!