当前位置:网站首页 > 技术博客 > 正文

多线程 python



目录

前言

一、进程

1.多任务

2.进程

3.多进程完成多任务

3.1进程的创建步骤

3.2通过进程类创建进程对象

3.3创建进程和启动的代码

4. 进程执行带有参数的任务

5.获取进程编号

6.进程的注意点

6.1主进程会等待所有的子进程执行结束后再结束

6.2设置守护主进程(主完子销)

二、多进程实现视频文件夹高并发copy器

三、线程

1.多任务

2.多线程完成多任务

2.1线程的创建步骤

2.2通过线程类创建线程对象

2.3线程创建与启动代码

3.线程执行有参数的任务(和进程基本一样)

4.主线程和子线程的结束顺序

4.1主线程会等待所有的子线程执行结束后再结束(同进程一样)

4.2设置守护子线程(主完子销)(同进程一样)​

 5.线程间的执行顺序

 5.1获取当前的线程信息

四、多线程实现视频文件夹高并发copy器

五、进程和线程对比

总结(其他博客总结)


这篇博客的笔记摘录自B站黑马程序员的《python多线程编程》的视频,原视频的地址如下:(博客中的代码全是我手敲的,运行皆可通过,若有错误,欢迎评论指出)

https://www.bilibili.com/video/BV1fz4y1D7tU?spm_id_from=pageDriver

在学习多线程编程之前,需要学会:基础语法、文件操作、模块应用

开发工具:PyCharm

内容安排:进程、线程、多任务应用

同一时间内执行多个任务

主要有两种方式:

① 并发(在一段时间内交替去执行多个任务:任务数量大于CPU核心数<切换速度很快>)

② 并行(在一段时间内真正同时一起执行多个任务:任务数量小于或等于CPU核心数

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

程序是静态,进程是动态

3.1进程的创建步骤

 

3.2通过进程类创建进程对象

3.3创建进程和启动的代码

 实例:

 

 结果:

 

 

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

 获取进程编号的两种方式:

        ① 获取当前进程编号

                os.getpid()

        ② 获取当前父进程编号

                os.getppid()

 

 

 

6.1主进程会等待所有的子进程执行结束后再结束

 

 

 

 

 

 

可以通过多线程的方式进行

进程是分配资源的最小单位,一旦创建一个进程就会分配一定的资源(打开两个)

线程是程序执行的最小单元,实际上进程只负责分配资源,而利用这些资源执行程序的是线程,也就是说进程是线程的容器,一个进程中最少有一个线程来负责执行程序

线程自己不拥有系统资源,但可与同属一个进程的其他线程共享进程所拥有的全部资源(一个打开两个chat窗口)

--- > 进程:

--- > 线程:

2.1线程的创建步骤

 

2.2通过线程类创建线程对象

2.3线程创建与启动代码

 

 

 

 

4.1主线程会等待所有的子线程执行结束后再结束(同进程一样)

4.2设置守护子线程(主完子销)(同进程一样)

 设置守护子线程有两种方式:

 

 5.1获取当前的线程信息

 

 同进程不一样之处:

 

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

非常详细的一篇博客:Python中线程与进程

 ……略

版权声明


相关文章:

  • rrt算法代码2024-11-20 19:29:59
  • 爬虫工具下载2024-11-20 19:29:59
  • java nio网络编程2024-11-20 19:29:59
  • 灰度发布的目标2024-11-20 19:29:59
  • ce认证公告机构查询2024-11-20 19:29:59
  • json.parse解析字符串报错2024-11-20 19:29:59
  • sqlserver char和varchar2024-11-20 19:29:59
  • c++语言教程2024-11-20 19:29:59
  • 代理的模式和原理2024-11-20 19:29:59
  • 班智达藏文输入法下载官方正式版2024-11-20 19:29:59