博学谷学习记录之人工智能(python进阶编程)第五篇

目录

python的进程和线程

获取进程编号

线程的概念

进程和线程对比

python的进程和线程

当多个任务同时进行可以大大提高程序你的执行效率,比如一个某聊天软件可以登录两个账号且两个账号可以独立运行。

那么执行多任务表现形式有那些?

1.并发操作:如:一个人同时既可以一边看电视又可以一边嗑瓜子

2.并行操作:如:两个人同时一起盖房子,一个人负责搬砖和水泥,一个人负责切墙

进程的概念:

进程是是资源分配的最小单位,它是操作系统进行资源分配和调度运行的基本单位,通俗理解:一个正在运行的程序就是一个进程。

#程序1
def test01():
    print('我是程序1')
def test02():
    print("我是程序2")


test01()
test02()

#在这种情况下,程序的执行的顺序是 test01() test02()

那么如何将两个程序同时运行呢?可以导入进程包 multiprocessing

#导入进程包
import multiprocessing

#程序1
def test01():
    print('我是程序1')
def test02():
    print("我是程序2")


test01_process = multiprocessing.Process(target=test01)
test02_process = multiprocessing.Process(target=test02)

test01_process.start()
test02_process.start()

获取进程编号

当程序中进程的数量越来越多时 , 如果没有办法区分主进程和子进程还有不同的子进程 , 那么就无法进行有效的进程管理 , 为了方便管理实际上每个进程都是有自己编号的。

1.获取当前进程的编号    getpid()

2.获取当前进程的父进程 getppid()

import os


def test01():
    # 获取当前进程的编号
    print('test01进程编号', os.getpid())
    # 获取父进程的编号
    print('test01父进程的编号', os.getppid())
    
test01()

线程的概念

想要实现多任务还可以使用多线程来完成.

线程是程序执行的最小单位 , 实际上进程只负责分配资源 , 而利用这些资源执行程序的是线程 , 也就说进程是线程的容器 , 一个进程中最少有一个线程来负责执行程序 。同时线程自己不拥有系统资源,只需要一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。

import threading


def test01():
    for i in range(3):
        print('听音乐...')


def test02():
    for i in range(3):
        print('敲代码...')
        



music_thread = threading.Thread(target=test01)
coding_thread = threading.Thread(target=test02)

music_thread.start()
coding_thread.start()

进程和线程对比

关系对比区别对比优缺点对比
线程是依附在进程里面的,没有进程就没有线程。创建进程的资源开销要比创建线程的资源开销要大进程可以多核资源开销大
一个进程默认提供一条线程,进程可以创建多个线程。进程是操作系统资源分配的基本单位,线程是CPU调度的基本单位线程资源开销小,但是不能多核

本周结束,下周继续。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值