进程以及状态 进程的创建

进程以及状态

1. 进程

程序:例如xxx.py这是程序,是一个静态的

进程:一个程序运行起来后,代码+用到的资源 称之为进程,它是操作系统分配资源的基本单元。

不仅可以通过线程完成多任务,进程也是可以的

一个程序可以对应多个进程,如qq一个程序,可以打开多个qq则是多个进程。

进程是拥有资源,如网络、内存等

 

2. 进程的状态

工作中,任务数往往大于cpu的核数,即一定有一些任务正在执行,而另外一些任务在等待cpu进行执行,因此导致了有了不同的状态

 

  • 就绪态:运行的条件都已经慢去,正在等在cpu执行
  • 执行态:cpu正在执行其功能
  • 等待态:等待某些条件满足,例如一个程序sleep了,此时就处于等待态

进程的创建

# -*- coding:utf-8 -*-
from multiprocessing import Process
import time


def run_proc():
    """子进程要执行的代码"""
    while True:
        print("----2----")
        time.sleep(1)


if __name__=='__main__':
    p = Process(target=run_proc)
    p.start()
    while True:
        print("----1----")
        time.sleep(1)

实现和线程差不多,只是调用的函数不一样

import time
import threading
import multiprocessing


def sing():
    for i in range(5):
        print("***********sing juhuacha***********\n")
        time.sleep(1)


def dance():
    for i in range(5):
        print("------dance tango------\n")
        time.sleep(1)


def main():
    # t1 = threading.Thread(target=sing)
    # t2 = threading.Thread(target=dance)
    # t1.start()
    # t2.start()


    p1 = multiprocessing.Process(target=sing)
    p2 = multiprocessing.Process(target=dance)
    p1.start()
    p2.start()

if __name__ == "__main__":
    main()
  • 创建子进程时,只需要传入一个执行函数和函数的参数,创建一个Process实例,用start()方法启动

进程相比线程多任务,占用的资源多:子进程创造时会把主进程的东西要复制一份,主进程有的东西子进程都会有,代码只有一份是共享的,能共享的就共享,不能共享的就复制一份

进程少转一圈时间少,找到平衡点

需要修改才拷贝

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值