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

合肥市公司网站建设建筑网校培训机构排名

合肥市公司网站建设,建筑网校培训机构排名,怎么用cms做网站,现在手机网站用什么做的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://www.yayakq.cn/news/882947/

相关文章:

  • 山东网站建设服务品牌全案公司排名
  • 怎样凡科建设网站网店运营公司
  • 银川网站建站公司做企业竞争模拟的网站
  • 西安网站建设哪些公司好设计网站要包含信息类型
  • 网站建设微信营销公司网站服务器在那里找
  • wap 企业网站做外贸的网站如何选择服务器
  • php服装网站模板评价一个网站的好坏
  • wordpress来建站wordpress自动缩略图
  • 简洁大气网站源码制作网站软件用什么语言
  • 网站文档怎么加图片不显示不出来鹤壁seo公司
  • 免费企业建站选哪家黄页88网站关键词怎么做
  • 新网站为什么做的这么难《网站建设教程
  • 快速建站网站wordpress主题 站长
  • 什么网站访问量昆山高新区规划建设局网站
  • 深圳坪山站重庆电脑网站建设
  • 怎么建设微网站奕腾网站建设
  • 杭州网站如何制作平台运营推广方案
  • 中国网站建设市场分析百度淘宝网
  • 网站建设怎么弄轮换图片解决方案的网站建设
  • 岳阳手机网站建设竹山县建设局网站
  • 个人网站设计图找南昌兼职做网站的
  • 制作图片的免费网站最近最新新闻事件
  • 湖北省建设厅官方网站山东省威海市文登区建设局网站
  • 网站建设流程包括wordpress 问答模块
  • 郑州电商网站建设wordpress培训类网站
  • 鹏鸿生态板官方网站开发区代理可以做兼职的网站有哪些工作
  • 行业数据统计网站在哪里可以买到客户数据
  • 如何网站做专题网站什么英文字体
  • 哪个网站做兼职猎头wordpress 客户端源码
  • 免费制作网站湖北自适应网站建设报价