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

电商网站建设代理商定制网站开发介绍图

电商网站建设代理商,定制网站开发介绍图,网站标题应怎设置,龙岩北京网站建设文章目录 [toc]线程与进程的区别与联系同步任务示例 并发任务示例 线程方法thread_object.start()thread_object.join()thread_object.setDaemon()thread_object.current_thread() 线程与进程的区别与联系 线程是可以被计算机CPU调度的最小单元进程是计算机分配资源#xff0… 文章目录 [toc]线程与进程的区别与联系同步任务示例 并发任务示例 线程方法thread_object.start()thread_object.join()thread_object.setDaemon()thread_object.current_thread() 线程与进程的区别与联系 线程是可以被计算机CPU调度的最小单元进程是计算机分配资源CPU、内存等的最小单元一个进程中至少有一个线程同一个进程中的线程共享进程中的资源 同步任务 我们在此之前编写的代码都是同步代码代码从上到下按顺序执行如果前一个任务没有完成那么不能运行之后的任务 示例 import timedef work_1():print(任务1...)time.sleep(2)def work_2():print(任务2...)time.sleep(2)start time.time()work_1() work_2()end time.time()print(f总共用时: {end - start} s)任务1... 任务2... 总共用时: 4.020084857940674 s可以看到整个程序用时 4 4 4秒work_2()需要等待work_1()运行结束后才能运行 并发任务 使用线程来运行上面的代码能够优化运行时间 示例 import time import threadingdef work_1():print(任务1...)time.sleep(2)def work_2():print(任务2...)time.sleep(2)# 通过 Thread 类创建线程对象, 并使用 target 绑定线程对象要运行的任务 t1 threading.Thread(targetwork_1) t2 threading.Thread(targetwork_2)# 运行线程 start time.time()t1.start() t2.start()t1.join() t2.join()end time.time()print(f总共用时: {end - start} s)任务1... 任务2... 总共用时: 2.0165793895721436 s可以看到整个程序用时 2 2 2秒work_1()和work_2并发运行 下面的示例可以看到CPU调度线程时的“随机性” import time import threadingdef work_1():for i in range(5):print(任务1...)time.sleep(2)def work_2():for i in range(5):print(任务2...)time.sleep(2)t1 threading.Thread(targetwork_1) t2 threading.Thread(targetwork_2)t1.start() t2.start()任务1... 任务2... 任务2...任务1...任务1...任务2...任务2... 任务1... 任务2... 任务1...可以看到任务 1 1 1和任务 2 2 2的调度顺序是我们无法确定的是由CPU的调度算法决定的 线程方法 在学习线程方法之前我们需要知道Python程序是如何被运行的 一个Python文件被解释器运行时会在操作系统中创建一个进程然后该进程会创建一个线程来运行文件中的代码这个程序最初创建的线程称为主线程当主线程执行到t threading.Thread()时会创建一个新的线程称为子线程当前进程中的主线程与子线程由CPU进行调度并发地运行具体调度哪个线程由操作系统的调度算法决定子线程在运行时主线程不会等待子线程而是继续向下执行直到执行到文件末尾没有代码时主线程会等待子线程运行结束后再退出 thread_object.start() t threading.Thread()只是创建了一个线程并不会执行线程代码 t.start()使线程t达到就绪态等待CPU进行调度具体何时调度由CPU决定 以上面的并发任务的代码为例先注释掉t1.start()和t2.start() import time import threadingdef work_1():print(任务1...)time.sleep(2)def work_2():print(任务2...)time.sleep(2)# 通过 Thread 类创建线程对象, 并使用 target 绑定线程对象要运行的任务 t1 threading.Thread(targetwork_1) t2 threading.Thread(targetwork_2)# 运行线程 start time.time()t1.start() t2.start()# t1.join() # t2.join()end time.time()print(f总共用时: {end - start} s)任务1... 任务2... 总共用时: 0.0009987354278564453 s可以看到主线程没有等待子线程而是继续向下执行当执行到end time.time()时此时end记录的时间是主线程运行到这行代码的时间之后运行print(f总共用时: {end - start} s)输出时间0.0009987354278564453 s此时执行到了文件末尾没有其他代码主线程会等待子线程运行结束后再退出为了能正确记录线程运行的时间我们需要让主线程等待子线程 thread_object.join() t.join()使主线程等待子线程子线程任务执行结束后主线程再继续向下执行仍然以上面的并发任务的代码为例取消注释t1.start()和t2.start() import time import threadingdef work_1():print(任务1...)time.sleep(2)def work_2():print(任务2...)time.sleep(2)# 通过 Thread 类创建线程对象, 并使用 target 绑定线程对象要运行的任务 t1 threading.Thread(targetwork_1) t2 threading.Thread(targetwork_2)# 运行线程 start time.time()t1.start() t2.start()t1.join() t2.join()end time.time()print(f总共用时: {end - start} s)任务1... 任务2... 总共用时: 2.008962392807007 s可以看到主线程等待子线程运行结束后才继续向下执行正确记录了子线程运行的时间 thread_object.setDaemon() 设置守护线程需要在线程启动之前进行设置如果一个线程是守护线程那么主线程运行结束后不论子线程任务是否结束都会自动退出没有设置守护线程的情况 import time import threadingdef work():for i in range(5):print(i)time.sleep(1)t threading.Thread(targetwork) # t.setDaemon(True)t.start()print(主线程即将退出...)0 主线程即将退出... 1 2 3 4设置守护线程的情况 import time import threadingdef work():for i in range(5):print(i)time.sleep(1)t threading.Thread(targetwork) t.setDaemon(True)t.start()print(主线程即将退出...)0 主线程即将退出...可以看到并没有继续输出 1 1 1、 2 2 2、 3 3 3、 4 4 4主线程就退出了 thread_object.current_thread() 获取当前线程对象的引用可以用来获取线程名称 import threadingdef work():name threading.current_thread().name # getName()print(name)for i in range(5):t threading.Thread(targetwork)t.name f线程-{i} # setName(f线程-{i})t.start()
http://www.zqtcl.cn/news/249918/

相关文章:

  • 大型商城网站建设学计算机前端好就业吗
  • 杭州 电子商务网站建设专门做酒店自助餐的网站
  • 如何备份网站数据库网站用户体验模型
  • 网站域名注册流程办公室装修风格
  • a站免费最好看的电影片推荐方正隶变简体可以做网站用么
  • 创同盟做网站找公司做网站需要咨询什么问题
  • 西安行业网站株洲高端网站建设
  • 优化网站流量商城网站建设软件
  • dw属于什么的网页制作工具网络建站优化科技
  • 百度网站首页的设计理念南京高新区规划建设局网站
  • 虚拟机做实验的网站网站以个人名义备案
  • 自定义表单网站网站建设营销型号的区别
  • 有个网站做彩盒的贵阳网站建设托管
  • 网站制作属于什么专业做网站需要什么配置服务器吗
  • 网站开发学习培训广州网站优化关键词公司
  • 毕节金海湖新区城乡建设局网站企业网站的步骤
  • 网站后台设计教程网站建设判断题
  • 珠海网站建设 金蝶天元建设集团有限公司李华
  • 海安市建设局网站成都官网seo技术
  • 网站建设策划书结束语wordpress付费版
  • 进口网站建设做网站用什么格式的图片
  • 青海省住房和城乡建设部网站进入网站空间
  • 做公司简介的开源网站企业seo多少费用
  • 学校网站建设工作方案昆明做网站词排名优化
  • 镇江企业做网站针对人群不同,网站做细分
  • 个人单页网站建设台州网站建设惠店
  • 专做婚礼logo的网站做搜狗pc网站快速排
  • 北京网站建设公司分享网站改版注意事项做网站需要多大空间
  • 主机网站建设制作天津西青区天气预报
  • 网站没有内容可以备案吗横向网站源码