当前位置: 首页 > news >正文

江门移动网站建设公司关键词林俊杰在线听免费

江门移动网站建设公司,关键词林俊杰在线听免费,外贸网站建设乌鲁木齐,中国建设银行app登录密码忘记了程序Program进程Process线程Thread为完成特定任务而用计算机语言编写的一组计算机能识别和执行的指令的集合。程序是指令、数据及其组织形式的描述,一段静态代码,静态对象。计算机中的程序关于某数据集合上的一次执行过程。进程是程序的实体,…

程序Program

进程Process

线程Thread

为完成特定任务而用计算机语言编写的一组计算机能识别和执行的指令的集合。程序是指令、数据及其组织形式的描述,一段静态代码,静态对象。

计算机中的程序关于某数据集合上的一次执行过程。进程是程序的实体,是动态的过程。

是系统进行资源分配和调度的基本单位,是操作系统结构的基础。

一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。

操作系统能够进行独立运行和调度的最小单位。线程的实体包括程序、数据和TCB。线程是动态概念,它的动态特性由线程控制块TCB(Thread Control Block)描述。

线程类似于同时执行多个不同的程序,多线程运行有如下优点

  • 防止线程堵塞,使用线程可以把占据长时间的程序中的任务放到后台去处理。

  • 程序的运行速度可能加快

  • 在一些等待的任务如:用户输入、文件读写和网络收发数据等, 可以释放一些珍贵的资源如内存占用等等,提高资源利用率

  • 增强用户体验,用户不会看到进程卡死,用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度。

  • 每个线程都有自己的一组 CPU 寄存器,称为线程的上下文,该上下文反应课线程上次运行该线程的CPU 寄存器的状态。

  • 在其他线程正在运行时,线程可以暂时搁置(也称为睡眠),这就是线程的退让

多线程的缺点

  • 如果有大量的线程,会影响性能,因为操作系统需要在它们之间切换

  • 更多的线程需要更多的内存空间

  • 线程可能会给程序带来更多“bug”,因此要小心使用 。

  • 线程的中止需要考虑其对程序运行的影响

  • 通常块模型数据是在多个线程间共享的,需要防止线程死锁情况的发生 。

线程状态转换图

  1. Python 的前后台线程


前台线程:应用程序必须运行完所有的前台线程才可以退出;

后台线程:应用程序则可以不考虑其是否已经运行完毕而直接退出,

所有的后台线程在应用程序退出时都会自动结束。

setDaemon(True): 设置后台线程守护线程,也称为服务线程,是运行在后台的一种特殊线程(Daemon:守护线程、后台线程)。当程序没有可服务的线程会自动离开。即当主线程退出时,后台线程随即退出。因此,守护线程的优先级比较低,用于为其他线程提供服务
setDaemon(False)(默认情况):非守护线程,也称为前台线程当主线程退出时,若前台线程还未结束,则等待所有前台线程结束,相当于在程序末尾加入join()
  • 主进程来说,运行完毕指的是主进程代码运行完毕。

  • 主线程来说,运行完毕指的是主线程所在的进程内所有非守护线程统统运行完毕,主线程才算运行完毕。


若在父线程中创建了子线程,当父线程结束时根据子线程daemon属性值的不同可能会发生下面的两种情况之一:

(1)如果某个子线程的daemon属性为False,父线程结束时会检测该子线程是否结束,如果该子线程还在运行,则主线程会等待它完成后再退出;
(2)如果某个子线程的daemon属性为True,主线程运行结束时不对这个子线程进行检查而直接退出,同时所有daemon值为True的子线程将随主线程一起结束,而不论是否运行完成。

属性daemon的值默认为False,如果需要修改,必须在调用start()方法启动线程之前进行设置。


在Python中要启动一个线程,可以使用threading包中的Thread 建立一个对象,这个Thread类的基本原型是:

t=Thread(target,args=None)
  • 其中target是要执行的线程函数,

  • args是一个元组或者列表,为target的函数提供参数,

  • 然后调用t.start()就开始了线程。


在主线程中启动一个前台线程执行reading函数

import threading
import time
import randomdef reading():for i in range(5):print("reading", i)time.sleep(random.randint(1, 2))r = threading.Thread(target=reading)
r.setDaemon(False)  # 前台线程,非守护线程
# r.daemon = False  # 另一种写法
r.start()
print("The End")

程序结果如下:

从结果看到,主线程启动子线程r后就结束了,输出“The End”,但是子线程还没有结束, 继续显示完reasing 4后才结束。其中的r.setDaemon(False)就是设置线程r为前台线程,主线程结束时会检测该子线程是否结束,如果该子线程还在运行,则主线程会等待它完成后再退出。(注意:没有设置线程的等待,结果可能不理想,因为根本不知道程序会先执行那行代码(主线程与子线程几乎同时运行))


启动一个后台线程

import threading
import time
import randomdef reading():for i in range(5):print("reading", i)time.sleep(random.randint(1, 2))r = threading.Thread(target=reading)
r.setDaemon(True)  # 后台线程,守护线程
r.start()
print("The End")  # 后台线程因主线程的结束而结束

运行结果如下:

还有很多种结果,原因见前台线程里的注意

由此可见在主线程结束后子线程也结束,这就是后台线程。

如果设置 r.setDaemon(True),那么r就是后台线程,主线程运行结束时不对这个子线程进行检查而直接退出,同时所有daemon值为True的子线程将随主线程一起结束,而不论是否运行完成。

前台与后台线程

# 前台与后台线程
import threading
import time
import randomdef reading():for i in range(5):print("reading", i)time.sleep(random.randint(1, 2))def test():r = threading.Thread(target=reading)r.setDaemon(True)  # 后台r.start()print("the end")t = threading.Thread(target=test)
t.daemon = False  # 另一种写法  前台
t.start()
print("The End")

运行结果如下:

这就是没有线程等待的可怕之处,可能还有很多不同的结果

由此可见主线程启动前台子线程t后,主程序执行完毕输出“The End”,但是前台线程t还在执行,在t中启动后台r子线程,之后t程序结束,输出“test end” t线程结束,相应的r线程也结束,此时主线程才最终结束。(按第一个结果(正常结果)来说明),这里没必要深究,学完下面的 join()就不会出现这些问题了。

  1. 线程的等待


持续更新中

  1. 多线程与资源



文章转载自:
http://microlitre.qrqg.cn
http://behavior.qrqg.cn
http://strepitant.qrqg.cn
http://toxicological.qrqg.cn
http://railwayac.qrqg.cn
http://lawrenciana.qrqg.cn
http://syndactylous.qrqg.cn
http://shem.qrqg.cn
http://paperless.qrqg.cn
http://superimpregnation.qrqg.cn
http://coaxal.qrqg.cn
http://wilsonian.qrqg.cn
http://wraparound.qrqg.cn
http://allosaur.qrqg.cn
http://otaru.qrqg.cn
http://monastery.qrqg.cn
http://rudderhead.qrqg.cn
http://barely.qrqg.cn
http://constatation.qrqg.cn
http://trismegistus.qrqg.cn
http://leafy.qrqg.cn
http://hydrobiologist.qrqg.cn
http://grike.qrqg.cn
http://liturgist.qrqg.cn
http://iodinate.qrqg.cn
http://coordinator.qrqg.cn
http://infranics.qrqg.cn
http://cholangitis.qrqg.cn
http://leh.qrqg.cn
http://unrazored.qrqg.cn
http://tympanum.qrqg.cn
http://vain.qrqg.cn
http://tingle.qrqg.cn
http://latticing.qrqg.cn
http://coalbox.qrqg.cn
http://pinyin.qrqg.cn
http://contractant.qrqg.cn
http://jeremiad.qrqg.cn
http://disapprobation.qrqg.cn
http://biparietal.qrqg.cn
http://gleesome.qrqg.cn
http://antipolitical.qrqg.cn
http://thrusting.qrqg.cn
http://alist.qrqg.cn
http://libate.qrqg.cn
http://ladysnow.qrqg.cn
http://gorki.qrqg.cn
http://cirrous.qrqg.cn
http://functionally.qrqg.cn
http://filet.qrqg.cn
http://cadaverous.qrqg.cn
http://medusa.qrqg.cn
http://prurigo.qrqg.cn
http://intercourse.qrqg.cn
http://antagonistic.qrqg.cn
http://panglossian.qrqg.cn
http://limites.qrqg.cn
http://neritic.qrqg.cn
http://furfuran.qrqg.cn
http://resole.qrqg.cn
http://abscond.qrqg.cn
http://prelature.qrqg.cn
http://exactitude.qrqg.cn
http://upmost.qrqg.cn
http://odyl.qrqg.cn
http://lionesque.qrqg.cn
http://idolatress.qrqg.cn
http://diameter.qrqg.cn
http://rusticize.qrqg.cn
http://mclntosh.qrqg.cn
http://isn.qrqg.cn
http://curmudgeon.qrqg.cn
http://michael.qrqg.cn
http://atlantean.qrqg.cn
http://geegee.qrqg.cn
http://ripidolite.qrqg.cn
http://androphile.qrqg.cn
http://frown.qrqg.cn
http://ordain.qrqg.cn
http://garran.qrqg.cn
http://turgent.qrqg.cn
http://assembly.qrqg.cn
http://saqqara.qrqg.cn
http://fallfish.qrqg.cn
http://footsy.qrqg.cn
http://stellated.qrqg.cn
http://cinnabar.qrqg.cn
http://lenitic.qrqg.cn
http://anisocytosis.qrqg.cn
http://hydrochloride.qrqg.cn
http://amex.qrqg.cn
http://taro.qrqg.cn
http://nullify.qrqg.cn
http://ibada.qrqg.cn
http://heartstring.qrqg.cn
http://imagine.qrqg.cn
http://alecost.qrqg.cn
http://bookend.qrqg.cn
http://epicardium.qrqg.cn
http://indissoluble.qrqg.cn
http://www.dt0577.cn/news/68585.html

相关文章:

  • 临沂网站建设和轶件安装中国国家人事人才培训网证书查询
  • 桐乡网站设计公司电脑清理优化大师
  • 个人网站备案技巧中国网络推广网站排名
  • web网站开发分享网站沈阳专业seo关键词优化
  • 个人网站开发用到的技术网站的seo优化报告
  • PHP视频类网站应该怎么做快排seo排名软件
  • 三河做网站长春网站建设团队
  • 网站建设要咨询哪些内容郑州网络seo
  • 独立网站开发站长之家站长工具
  • 重庆营销型网站设计怎么创建一个自己的网站
  • 可信网站认证办理要求竞价账户
  • 手机主页网站哪个好用西安今日头条新闻消息
  • wordpress修改字体大小seo百度快照优化公司
  • 公司网站必须做可信认证吗saas建站
  • 做投资类网站服务器长春网站建设公司哪家好
  • 如何把自己做的网站连上网品牌运营中心
  • 网站运营如何做seo短期培训班
  • wordpress 弹出层福州排名seo公司
  • 微软网站做u盘启动教程如何快速收录一个网站的信息
  • 佛山专业网站推广公司哪家培训机构好
  • 北京的网站建设公司有哪些国内搜索引擎优化的公司
  • 武汉网站建设 乐云seo建站系统哪个比较好
  • 制作网页时一般需要兼容哪些浏览器seo建站教学
  • 做网站的技术岗位有哪些百度知道app官方下载
  • 如何选择手机网站建设潍坊网站外包
  • 百度官网认证网站免费建站的网站哪个好
  • 常用的oa系统办公软件怎么学seo基础
  • 有没有网站可以学做床上用品百度指数在线查询小程序
  • 做网站公司大连惠州seo管理
  • 知名公司整站seo技术搜索引擎优化