进程,是目前计算机中为应用程序分配资源的最小单位;

线程,是目前计算机中运行应用程序的最小单位;

在实际系统中,其实进程都是被分为线程来实现的,所以参与时间片轮转的是线程;

但是管理应用程序的资源的单位和任务调度的单位都是进程。更像是一个逻辑概念。

线程是进程分出来的更精细的单位,线程间的上下文切换比进程间的上下文切换,要快很多。

多进程与多核,这个概念很奇怪,因为进程是不会直接在核心上运行的。

多线程与多核,涉及一个内核线程与用户线程的对应关系。

内核线程(Kernel Thread),一般与核心是一一对应的,一个处理核心对应一个内核进程。

目前的计算机,配置一般都是超线程的,即通过硬件冗余,将一个物理核心模拟成两个逻辑处理核心,

对应两个内核线程。所以在操作系统中看到的CPU是实际物理核心的两倍。

如双核四线程,四核八线程

------------------------------------------------------------------------

intel的cpu为了实现分支预测等技术,一般每个内核的运算单元是双份的,-------超线程

服务器方面的物理核心的运算单位,可能会更多,支持更大的超线程

------------------------------------------------------------------------

用户线程与内核线程的对应关系:

1) 一一对应,由于内核线程很少,所以限制了很多用户线程的执行数量;

2) 多对一,用户线程很慢,影响调度;

3) 多对多,目前应用的模式,

python中的多进程库,multiprocessing,提供的方法和属性:

属性:authkey,daemon(父进程终止后,自动结束子进程,必须在start之前设置),exitcode,name,pid

方法: Process(target,name,args,kwargs),创建进程对象

is_live(),进程状态

join('timeout'),表示等待后台的进程运行结束,如果指定timeout,一定时间后,杀掉进程

run(),

start(),

terminate(),

join(),等所有的后台子进程执行好;

cpu_count(),返回当前拥有的cpu的个数,超线程之后的。

进程创建时,target可以指定为一个函数,也可以直接例化一个进程class。

创建函数process:

创建class进程,start()之后,会自动调用run()函数:

加入daemon属性:并不会等到该worker的process结束,程序就执行结束了。

多进程遍历:active_children()

还可以加入lock,semaphore,实现对共享资源的控制,event,进程间通信。

还有进程队列(Queue),和进程管道(Pipe)

Pool,进程池,不需要自己在管理进程的数量,进程池自动管理。

如果池中的进程数量达到阈值,阻塞其他进程。

参考博客

https://www.cnblogs.com/kaituorensheng/p/4445418.html

python中的多线程,好像不是特别的好用,python内部有一个global interpreter lock(GIL),它阻碍了

python的多线程程序的同时运行。python中也有多线程的模块,threading模块。

有人做过实验,在CPU密集型的任务中,多线程并不能有多少效率上的提升,反而因为上下文的切换,降低效率。

而多进程,可以在多个core中并行的跑,效率会提高。

在IO密集型的任务中,多线程和多进程,都会带来性能的提高。

在网络请求密集型的任务中,多线程与多进程,相差无几。

多进程可以发挥多核芯片的性能,在一个进程中,可以在实现多线程的操作,来频繁调度,防止IO的阻塞。

python多线程编程技术主要应用_python多线程,多进程编程。相关推荐

  1. python的多线程适合计算密集操作_Python 多线程操作学习

    Python 多线程操作 什么是线程: 线程(Thread)也叫轻量级进程,是操作系统能够进行运算调度的最小单位,它被包涵在进程之中,是进程中的实际运作单位.线程自己不拥有系统资源,只拥有一点儿在运行 ...

  2. java web编程技术解题与实验指导_javaweb编程技术实验指导书

    javaweb编程技术实验指导书 <Java Web编程技术> 实 验 指 导 书 沈泽刚 编写2010 年 3 月目 录 实验一 简单的 Servlet 与 JSP .1 实验二 HTT ...

  3. python多线程读取文件的问题_Python多线程同步---文件读写控制方法

    1.实现文件读写的文件ltz_schedule_times.py #! /usr/bin/env python #coding=utf-8 import os def ReadTimes(): res ...

  4. python多线程下载多个文件_python多线程下载文件 练习1

    ***今天在我BF的帮助下完成了小小的程序,也是我第一次写博客呢,谢谢他哦嘎嘎 1.首先,计算出下载文件的长度. conn = urllib.urlopen(url) headers = conn.i ...

  5. python多线程队列两组数据_python 多线程2-队列同步

    让我们考虑更复杂的一种场景:产品是各不相同的.这时只记录一个数量就不够了,还需要记录每个产品的细节.很容易想到需要用一个容器将这些产品记录下来. Python的Queue模块中提供了同步的.线程安全的 ...

  6. python重复运行程序百度知道_Python多线程采集百度相关搜索关键词工具带exe程序!...

    [Python] 纯文本查看 复制代码#百度相关搜索关键词抓取,读取txt关键词,导出txt关键词 # -*- coding=utf-8 -*- import requests import re i ...

  7. python多线程下载百度网盘_python多线程突破百度云限速下载

    1.首先得用网页打开你自己的百度云 2.点开你所要下载文件的下载链接,如下图 3.复制下载网址和文件名,自定义你想下载到的目录,填写到程序中 4.运行下列python程序 import request ...

  8. python线程只能启动一次_python多线程只能运行一个线程的问题

    问题描述: 使用 python threading.Thread() 建立两个线程,启动后只有线程1在运行,线程2不运行. 问题代码 import time, threading def run_th ...

  9. python 点击按钮采集图片_python多线程采集图片

    cmd中运行 >python untitled2.py    图片的网站 import requests import threading from bs4 import BeautifulSo ...

最新文章

  1. iOS开发—block介绍
  2. R语言ggplot2可视化使用vjust和hjust参数对齐图像中的文本注释信息(左对齐、右对齐、居中)实战
  3. java中对象的生存期_JSP中JavaBean的生命周期
  4. 力扣:7整数反转(python)
  5. 智能外呼系统相关资料总结
  6. Eclipse如何添加Maven的scala支持
  7. try...catch...finally的陷阱——加锁的线程开发经验分享
  8. HTML/CCS初学的小小收获(大虾表鄙视小白)(1)
  9. cad没有命令输入框_cad中怎么输入文字?cad怎么输入文字?
  10. 在windows应用程序上输出透明字体
  11. 2022考研:数学考研备考规划
  12. OpenGL-入门-绘制点线面
  13. 计算机基础知识教程excel函数计算,计算机基础知识:Excel中的函数操作(四)...
  14. 忍者理论谈《嗜血边缘》如何做出独特的4V4战斗音效
  15. 让代码看起来更舒服,选择适合的字体。 (转)--我推荐的是:Bitstream Vera Sans Mono
  16. 数学之美,C++之美,代码之美
  17. Part 2 Linux programming:chapter 18:多线程服务器端实现
  18. 简练软考知识点整理-估算活动持续时间
  19. 如何防守住企业的生死大门?
  20. python:使用scipy求解常微分方程

热门文章

  1. spring mvc项目在IDEA下使用jrebel热部署报错!!
  2. wpsppt流程图联系效果_| JEAM | 文章精选:大城市收取交通拥堵费的影响与效果
  3. 动态PHP查看新闻,PHP_用文本文件实现的动态实时发布新闻的程序,动态实时发布新闻的程序,可 - phpStudy...
  4. 2018-2019-2 网络对抗技术 20165328 Exp4 恶意代码分析
  5. Fiddler-学习笔记-远程抓包
  6. [BZOJ5329][Sdoi2018]战略游戏 圆方树+虚树
  7. NKOJ2317 英语四六级考试
  8. CSS教程:实例讲解定位Position
  9. Window.ShowModalDialog使用手册
  10. 3-算法 鸡兔同笼 简单逻辑