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

招远网站建设公司设计类平台网站

招远网站建设公司,设计类平台网站,百度网页下载,泉州seo一、线程进程 对于操作系统来说#xff0c;一个任务就是一个进程#xff08;Process#xff09;#xff0c;比如打开一个浏览器就是启动一个浏览器进程#xff0c;打开一个记事本就启动了一个记事本进程#xff0c;打开两个记事本就启动了两个记事本进程#xff0c…一、线程进程 对于操作系统来说一个任务就是一个进程Process比如打开一个浏览器就是启动一个浏览器进程打开一个记事本就启动了一个记事本进程打开两个记事本就启动了两个记事本进程打开一个Word就启动了一个Word进程。进程是很多资源的集合。   有些进程还不止同时干一件事比如Word它可以同时进行打字、拼写检查、打印等事情。在一个进程内部要同时干多件事就需要同时运行多个“子任务”我们把进程内的这些“子任务”称为线程Thread。 由于每个进程至少要干一件事所以一个进程至少有一个线程。当然像Word这种复杂的进程可以有多个线程多个线程可以同时执行多线程的执行方式和多进程是一样的也是由操作系统在多个线程之间快速切换让每个线程都短暂地交替运行看起来就像同时执行一样。当然真正地同时执行多线程需要多核CPU才可能实现。线程是最小的执行单元而进程由至少一个线程组成。 我们在做事情的时候一个人做是比较慢的如果多个人一起来做的话就比较快了程序也是一样的我们想运行的速度快一点的话就得使用多进程或者多线程在python里面多线程被很多人诟病为什么呢因为Python的解释器使用了GIL的一个叫全局解释器锁它不能利用多核CPU只能运行在一个cpu上面但是你在运行程序的时候看起来好像还是在一起运行的是因为操作系统轮流让各个任务交替执行任务1执行0.01秒切换到任务2任务2执行0.01秒再切换到任务3执行0.01秒……这样反复执行下去。表面上看每个任务都是交替执行的但是由于CPU的执行速度实在是太快了我们感觉就像所有任务都在同时执行一样。这个叫做上下文切换。 二、多线程python中的多线程使用theading模块 下面是一个简单多线程 1 2 3 4 5 6 7 8 9 10 11 12 13 import threading import time def sayhi(num): #定义每个线程要运行的函数 print(running on number:%s %num) time.sleep(3) if __name__  __main__: t1  threading.Thread(targetsayhi,args(1,)) #生成一个线程实例 t2  threading.Thread(targetsayhi,args(2,)) #生成另一个线程实例 t1.start() #启动线程 t2.start() #启动另一个线程 下面是另一种启动多线程的方式继承式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 import threading import time class MyThread(threading.Thread): def __init__(self,num): threading.Thread.__init__(self) self.num  num def run(self):#定义每个线程要运行的函数 print(running on number:%s %self.num) time.sleep(3) if __name__  __main__: t1  MyThread(1) t2  MyThread(2) t1.start() t2.start() 这两种方式没有什么区别两种写法而已我个人喜欢用第一种更简单一些。 线程等待多线程在运行的时候每个线程都是独立运行的不受其他的线程干扰如果想在哪个线程运行完之后再做其他操作的话就得等待它完成那怎么等待呢使用join等待线程结束 1 2 3 4 5 6 7 8 9 10 11 12 13 14 import threading import time def run(): print(qqq) time.sleep(1) print(done!) lis  [] for i in range(5): t  threading.Thread(targetrun) lis.append(t) t.start() for t in lis: t.join() print(over) 守护线程什么是守护线程呢就相当于你是一个国王非守护线程然后你有很多仆人守护线程这些仆人都是为你服务的一但你死了那么你的仆人都给你陪葬。 1 2 3 4 5 6 7 8 9 10 11 import threading import time def run(): print(qqq) time.sleep(1) print(done!) for i in range(5): t  threading.Thread(targetrun) t.setDaemon(True) t.start() print(over) 线程锁线程锁就是很多线程一起在操作一个数据的时候可能会有问题就要把这个数据加个锁同一时间只能有一个线程操作这个数据。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 import threading from threading import Lock num  0 lock  Lock()#申请一把锁 def run(): global num lock.acquire()#加锁 num1 lock.release()#解锁 lis  [] for i in range(5): t  threading.Thread(targetrun) t.start() lis.append(t) for t in lis: t.join() print(over,num) 下面来个简单的爬虫看下多线程的效果 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 import threading import requests,time urls  { baidu:http://www.baidu.com, blog:http://www.nnzhp.cn, besttest:http://www.besttest.cn, taobao:http://www.taobao.com, jd:http://www.jd.com, } def run(name,url): res  requests.get(url) with open(name.html,w,encodingres.encoding) as fw: fw.write(res.text) start_time  time.time() lis  [] for url in urls: t  threading.Thread(targetrun,args(url,urls[url])) t.start() lis.append(t) for t in lis: t.join() end_time  time.time() print(run time is %s%(end_time-start_time)) #下面是单线程的执行时间 # start_time  time.time() # for url in urls: #     run(url,urls[url]) # end_time  time.time() # print(run time is %s%(end_time-start_time)) 三、多进程上面说了Python里面的多线程是不能利用多核CPU的如果想利用多核CPU的话就得使用多进程python中多进程使用multiprocessing模块。 1 2 3 4 5 6 7 8 from multiprocessing import Process import time def f(name): time.sleep(2) print(hello, name)  p  Process(targetf, args(niu,)) p.start() p.join()  转载于:https://www.cnblogs.com/chunyanxu/p/8732576.html
http://www.zqtcl.cn/news/726920/

相关文章:

  • 整容医院网站建设目的顺企网贵阳网站建设
  • 微网站 htmlseo做的好的网站
  • 免费做网站推荐东平网页设计
  • 所有复刻手表网站wordpress 标题简码
  • 云南建设厅建设网站首页网站建设s
  • 网站用户需求报告网站充值怎么做的
  • 找代码的网站有一个网站是做釆购的是什么网
  • 做外贸最好的网站有哪些php网站开发工程师待遇
  • 做推文封面的网站首页>新闻>正文 网站怎么做
  • 黄页推广引流网站企业网站导航菜单
  • 合肥专门做网站的公司广告代理商是什么意思
  • wordpress显示一个类目seo推广
  • 营销型电子商务网站特点如何申请免费空间和域名
  • 网站建设 主要学是么vk汉化网站谁做的
  • 做英文网站费用多少学校网站开发毕业设计
  • 红动中国设计网站官网网页制作的论文
  • 云阳一平米网站建设西安设计工作室推荐
  • 网站长尾关键词优化网页设计定制代理
  • 海东电子商务网站建设运城市网站建设公司
  • 网站建设得要素电子商务网站建设与维护项目五
  • 网站备案无前置审批文件南宁市建设厅网站
  • 百度网站体检手机网页小游戏
  • 大型购物网站建设费用广告设计与制作软件有哪些
  • 郑州建设工程交易中心网站汉寿做网站的公司
  • 青岛企业做网站startuply中文版wordpress主题
  • 商标设计网站猪八戒网站建设与设计教程
  • 网站建设积分wordpress添加右侧菜单
  • 网站策划资料方案天津优化公司
  • 做网站推广哪家公司好成都最正规的装修公司
  • 菜鸟建网站如何制作推广网站