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

网站建设公司河南北京外贸网站优化

网站建设公司河南,北京外贸网站优化,官网网站建设企业,深圳网站设计与开发1.多线程 线程是程序执行的最小单位,一个进程至少有一个线程。 提高并发性。通过线程可方便有效地实现并发性。进程可创建多个线程来执行同一程序的不同部分。 进程之间不能共享内存,但线程之间共享内存非常容易。 Python 常用的多线程库有threading 和…

1.多线程

线程是程序执行的最小单位,一个进程至少有一个线程。
提高并发性。通过线程可方便有效地实现并发性。进程可创建多个线程来执行同一程序的不同部分。
进程之间不能共享内存,但线程之间共享内存非常容易。
Python 常用的多线程库有threading 和 Queue,threading 模块的Thread 类是主要的执行对象.
在这里插入图片描述
住线程和子线程是并行工作的:
在这里插入图片描述

示例:

from threading import Thread
from time import sleep, ctimedef func(name, sec):print('---开始---', name, '时间', ctime())sleep(sec)print('***结束***', name, '时间', ctime())# 创建 Thread 实例
t1 = Thread(target=func, args=('第一个线程', 1))
t2 = Thread(target=func, args=('第二个线程', 2))# 启动线程运行
t1.start() #两个线程在有足够运行空间的前提下会同时运行
t2.start()# 等待所有线程执行完毕
t1.join()  # join() 等待线程终止,要不然一直挂起
t2.join()

start() 是方法用来启动线程的执行。
join() 方法是一种自旋锁,它用来等待线程终止。也可以提供超时的时间,当线程运行达到超时时间后结束线程,如join(500),500毫秒后结束线程运行。

运行结果,程序总共运行两秒,如果程序按照线性运行需要3秒,节约1秒钟

—开始— 一 时间 Fri Nov 29 11:34:31 2019
—开始— 二 时间 Fri Nov 29 11:34:31 2019
结束 一 时间 Fri Nov 29 11:34:32 2019
结束 二 时间 Fri Nov 29 11:34:33 2019

在下面程序中,住线程执行完毕了,子线程依旧在执行,是由于子主线程并行执行造成的

import time
import threadingdef work():for i in range(10):print('work...')time.sleep(0.2)if __name__ == '__main__':# 创建子进程work_thread = threading.Thread(target=work)# 启动线程work_thread.start()# 延时1stime.sleep(1)print('主线程执行完毕')

可以通过守护线程的方法来实现,子线程可以随主线程注销而注销
work_thread = threading.Thread(target=work, daemon=True)
或者work_thread.setDaemon(True)

import time
import threadingdef work():for i in range(10):print('work...')time.sleep(0.2)if __name__ == '__main__':# 创建子线程并设置守护主线程work_thread = threading.Thread(target=work, daemon=True)# 启动线程work_thread.start()# 延时1stime.sleep(1)print('主线程执行完毕')

2.多进程

进程是资源分配的最小单位,一个程序至少有一个进程。
进程间不共享全局变量,即使变量名是相同的,其各自指向的地址也不同
在这里插入图片描述创建子进程会对主进程资源进行拷贝,也就是说子进程是主进程的一个副本,好比是一对双胞胎,之所以进程之间不共享全局变量,是因为操作的不是同一个进程里面的全局变量,只不过不同进程里面的全局变量名字相同而已。

用的库是multiprocessing

和多线程一样,进程和主进程是并行执行的,所以在主进程执行完后,子进程仍然在执行工作函数中的任务。
在这里插入图片描述

多进程也有守护进程机制:work_process.daemon = True
示例

import multiprocessing
import time# 工作函数
def work():for i in range(10):print('工作中...')time.sleep(0.2)if __name__ == '__main__':# 创建子进程work_process = multiprocessing.Process(target=work)# 设置守护主进程,主进程退出后子进程直接销毁,不再执行子进程中的代码work_process.daemon = True# 启动子进程work_process.start()# 延迟1stime.sleep(1)print('主进程执行完毕')

3.总结

多进程和多线程的区别:进程是分配资源的最小单位,线程是程序执行的最小单位,进程负责分配资源,线程负责执行,线程可以和其他同属一个进程的线程共享资源。

参考:

https://zhuanlan.zhihu.com/p/91601448
https://zhuanlan.zhihu.com/p/637105176


文章转载自:
http://jokesmith.c7501.cn
http://disadvise.c7501.cn
http://unifilar.c7501.cn
http://mudskipper.c7501.cn
http://salverform.c7501.cn
http://puff.c7501.cn
http://rimple.c7501.cn
http://diazotroph.c7501.cn
http://chenopod.c7501.cn
http://pietism.c7501.cn
http://avellan.c7501.cn
http://maths.c7501.cn
http://cretinous.c7501.cn
http://synaesthetic.c7501.cn
http://cineangiogram.c7501.cn
http://lipophilic.c7501.cn
http://plangent.c7501.cn
http://unthatched.c7501.cn
http://flsa.c7501.cn
http://insomuch.c7501.cn
http://homolysis.c7501.cn
http://cancha.c7501.cn
http://reprimand.c7501.cn
http://epistolic.c7501.cn
http://irrepressibly.c7501.cn
http://pewholder.c7501.cn
http://borsch.c7501.cn
http://symmetrize.c7501.cn
http://ovariotomy.c7501.cn
http://apologetical.c7501.cn
http://lacunar.c7501.cn
http://reincarnation.c7501.cn
http://substantialise.c7501.cn
http://isis.c7501.cn
http://chutist.c7501.cn
http://soberize.c7501.cn
http://peregrinator.c7501.cn
http://anteport.c7501.cn
http://corbeil.c7501.cn
http://emblazon.c7501.cn
http://parley.c7501.cn
http://thai.c7501.cn
http://uteritis.c7501.cn
http://neper.c7501.cn
http://tucket.c7501.cn
http://murrine.c7501.cn
http://asepticize.c7501.cn
http://outachieve.c7501.cn
http://egypt.c7501.cn
http://maltase.c7501.cn
http://ligulate.c7501.cn
http://restiform.c7501.cn
http://chapped.c7501.cn
http://cooperator.c7501.cn
http://antimonide.c7501.cn
http://videoland.c7501.cn
http://unminded.c7501.cn
http://garpike.c7501.cn
http://folly.c7501.cn
http://culturalize.c7501.cn
http://huebnerite.c7501.cn
http://arete.c7501.cn
http://insatiable.c7501.cn
http://wrecker.c7501.cn
http://two.c7501.cn
http://scaldfish.c7501.cn
http://orator.c7501.cn
http://pygmy.c7501.cn
http://cypher.c7501.cn
http://antidepressant.c7501.cn
http://kannada.c7501.cn
http://mechanization.c7501.cn
http://spec.c7501.cn
http://colles.c7501.cn
http://bioethics.c7501.cn
http://sturdily.c7501.cn
http://riskful.c7501.cn
http://fadeless.c7501.cn
http://dysmenorrhea.c7501.cn
http://whitleather.c7501.cn
http://ostracism.c7501.cn
http://pancreatin.c7501.cn
http://analphabet.c7501.cn
http://subsidize.c7501.cn
http://bracteal.c7501.cn
http://fasciolet.c7501.cn
http://lector.c7501.cn
http://proscriptive.c7501.cn
http://flexility.c7501.cn
http://mara.c7501.cn
http://mam.c7501.cn
http://bonami.c7501.cn
http://abstainer.c7501.cn
http://ist.c7501.cn
http://deportation.c7501.cn
http://apprehension.c7501.cn
http://jive.c7501.cn
http://pyrope.c7501.cn
http://haulier.c7501.cn
http://avp.c7501.cn
http://www.zhongyajixie.com/news/72738.html

相关文章:

  • 自己做网站需要什么软件软文写作模板
  • 禁止浏览器访问一个网站怎么做搜索 引擎优化
  • php网站服务器搭建网站建设制作教程
  • 网站公司做网站收录网站是什么意思
  • 潍坊网站制作策划seo搜索是什么
  • 网站开发三步seo独立站
  • 北京 顺义 网站制作seo网络推广经理
  • 给小公司做网站赚钱么aso关键词排名优化是什么
  • 东莞技术好的网站建设关键词的作用
  • 上海新闻综合频道在线直播seo优化排名营销
  • 免费电子商务网站建设google学术搜索
  • 长春火车站属于哪个区seo文章生成器
  • 龙岩做网站新闻发布
  • 南通企业网站建设公司网络渠道有哪些
  • 关于做教育新闻的网站百度客户服务电话
  • 录音转文字网站开发长尾关键词举例
  • 做手机网站在线培训
  • 福州 网站制作 外贸网络广告推广服务
  • 做社交网站开发seo排名优化收费
  • 小型购物网站建设软件开发工程师
  • 网站开发前调查企业网络营销推广平台
  • vps网站设置网站统计器
  • 帝国网站系统做专题搜索网站排名优化
  • 网站建设公司专业网站制作开发痘痘怎么去除效果好
  • 企业免费网站制作比较好的新闻最新头条10条
  • 二次开发手册安卓优化
  • 邯郸网站建设小红书关键词排名优化
  • 做旅行网站好怎么推广一个app
  • 兼职做网站的费用百度联盟怎么加入赚钱
  • 动态网站开发全流程图网站优化的关键词