前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python的线程与进程

Python的线程与进程

作者头像
云帆沧海
发布2024-01-17 16:58:54
1470
发布2024-01-17 16:58:54
举报
文章被收录于专栏:编程杂记
文章目录
  • 前言
  • 一、多任务
  • 二、进程
    • 1.进程的概念
    • 2.进程的创建
  • 三、线程
    • 1.线程的概念
    • 2.线程的创建
  • 四、守护线程
    • 1.设置守护线程的方法
  • 总结

前言

在实际运用中Python程序往往要处理多个任务,那么如何让Python程序执行多任务呢?这就用到了线程和进程,线程和进程又各有特点,下面就进一步阐述线程和进程


一、多任务

1.1.多任务就是同一时间,多个任务

1.2.并发 在一段时间内交替执行多个任务 1.3并行 同时在一起执行多个任务

二、进程

1.进程的概念

资源分配的最小单位-——它是操作系统进行资源分配的调度运行的基本单位。 例如: 一个正在运行的程序

2.进程的创建

1.导入进程库

代码如下:

代码语言:javascript
复制
import multiprocessing

2.创建进程对象

代码语言:javascript
复制
进程对象=multiprocessing.Process(target=a)

a为任务名

3.启动进程执行任务

代码语言:javascript
复制
进程对象.start()

4.获取进程编号

代码语言:javascript
复制
os.getpid() #获取当前进程编号

5.程序示例

代码语言:javascript
复制
import multiprocessing
def a():
    for i in range(3):
        print('read')

def b():
    for i in range(3):
        print('write')

if __name__=='__main__':
    jin = multiprocessing.Process(target=a)
    ejin = multiprocessing.Process(target=b)
    jin.start()
    ejin.start()

运行结果

代码语言:javascript
复制
readwrite

readwrite

writeread

三、线程

1.线程的概念

线程:程序执行的最小单位 一个进程中最少有一个线程来执行程序,本身不占有系统资源(只需要在运行中必需的资源),它可以与同属于一个进程的线程共享其拥有的全部资源(例如:一个程序可以同时打开两个窗口)

2.线程的创建

1.导入线程库

代码如下:

代码语言:javascript
复制
import threading

2.创建进程对象

代码语言:javascript
复制
进程对象=threading.Thread(target=a)

a为任务名

3.启动进程执行任务

代码语言:javascript
复制
线程对象.start()

4.获取进程编号

代码语言:javascript
复制
os.getpid() #获取当前进程编号

5.程序示例

代码语言:javascript
复制
import threading
import time
def a():
    for i in range(3):
        print('read')
        time.sleep(1)

def b():
    for j in range(3):
        print('write')
        time.sleep(1)
        
if __name__=='__main__':
    read = threading.Thread(target=a)
    write = threading.Thread(target=b)
    read.start()
    write.start()

运行结果

代码语言:javascript
复制
read
write
read
write
readwrite

四、守护线程

一般情况下主线程会等待所有子线程结束才会结束

在实际运用中有时候需要避免这种情况,那么就可以通过设置守护线程来达到主线程不会等待子线程结束才结束

1.设置守护线程的方法

代码语言:javascript
复制
线程对象= = threading.Thread(target=a,daemon=True)

或者在线程启动之前加一行代码

代码语言:javascript
复制
线程对象.setDeamon(True)

总结

本文仅仅简单介绍了线程与进程的基本概念及使用使用,进程和线程给我们提供了一种一个程序执行多个任务的途径,在实际运用中有着很大的作用。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-01-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 前言
  • 一、多任务
  • 二、进程
    • 1.进程的概念
      • 2.进程的创建
      • 三、线程
        • 1.线程的概念
          • 2.线程的创建
          • 四、守护线程
            • 1.设置守护线程的方法
            • 总结
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档