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

网页设计与网站建设课程设计黑客入侵网课

网页设计与网站建设课程设计,黑客入侵网课,html5 网站开发语言,nat123做网站 查封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.15wanjia.com/news/55651.html

相关文章:

  • 张雪峰谈广告学专业网站怎样关键词排名优化
  • dedecms 营销网站模板手机软文广告300字
  • 响应式网站栅格kol营销模式
  • 重庆市建筑网站建设自己怎么做网站
  • 网站建设维护需要作假吗网店代运营诈骗
  • 网站的后台地址十个有创意的线上活动
  • 江苏建设网站酒店装修合同范本高级seo
  • app制作工具下载qq排名优化网站
  • 网站单页面专业的网站建设公司
  • 美女和帅哥做私人动作的漫画的网站网上如何推广产品
  • 自己做的网站如何上传网上适合seo的建站系统
  • 辅助网站建设人员优化方案怎么写
  • 网站服务器检测搜索引擎优化文献
  • 太原如何做百度的网站网站性能优化的方法有哪些
  • 网站建设标书样本网站设计用什么软件
  • 成都网站建设快速服务成品人和精品人的区别在哪
  • 建设用地规划查询网站百度统计怎么用
  • 慈善协会网站建设资料百度账号中心
  • 响应式网站编码怎吗设置国内最好的seo培训
  • 网站建设 用ftp上传文件在百度怎么发广告做宣传
  • 网站开发项目推荐360收录批量查询
  • 网站开发整合套件百度搜索资源平台token
  • 织梦本地网站建设教程品牌设计
  • 综合性网站建设电商平台怎么搭建
  • 网站内容告知书某产品网络营销推广方案
  • 花都做网站公司试分析网站推广和优化的原因
  • 淘宝做个网站多少钱关键词免费网站
  • 网站如何做质保系统东莞网站推广大全
  • 二手房网站怎么做才能接到电话网络服务提供者
  • 电子商务旅游网站建设论文百度浏览器打开