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

php网站上传linux vps网站搬家命令

php网站上传,linux vps网站搬家命令,微信crm系统软件,网站建设功能一、介绍 全局解释锁#xff08;Global Interpreter Lock#xff0c;GIL#xff09;是在某些编程语言的解释器中使用的一种机制。在Python中#xff0c;GIL是为了保证解释器线程安全而引入的。 GIL的作用是在解释器的执行过程中#xff0c;确保同一时间只有一个线程可以…一、介绍 全局解释锁Global Interpreter LockGIL是在某些编程语言的解释器中使用的一种机制。在Python中GIL是为了保证解释器线程安全而引入的。 GIL的作用是在解释器的执行过程中确保同一时间只有一个线程可以执行Python字节码。这意味着在多线程的情况下同一时刻只有一个线程可以真正地执行Python代码其他线程只能等待。这是因为GIL会在解释器的关键部分进行加锁阻止其他线程的执行。 二、 对多线程 Python 程序的影响 CPU 密集型程序是那些将 CPU 推向极限的程序。这包括进行数学计算的程序如矩阵乘法、搜索、图像处理等。 I/O 绑定程序是花时间等待输入/输出的程序这些输入/输出可能来自用户、文件、数据库、网络等。I/O 绑定程序有时必须等待很长时间直到它们从源获得所需的内容因为源可能需要在输入/输出准备就绪之前进行自己的处理例如用户考虑在输入提示或在其自己的进程中运行的数据库查询中输入什么。 下面是一个多线程的程序 # single_threaded.py import time from threading import ThreadCOUNT 50000000def countdown(n):while n0:n - 1start time.time() countdown(COUNT) end time.time()print(Time taken in seconds -, end - start) 现在修改了代码以使用两个线程并行执行相同的倒计时代码 # multi_threaded.py import time from threading import ThreadCOUNT 50000000def countdown(n):while n0:n - 1t1 Thread(targetcountdown, args(COUNT//2,)) t2 Thread(targetcountdown, args(COUNT//2,))start time.time() t1.start() t2.start() t1.join() t2.join() end time.time()print(Time taken in seconds -, end - start) 再次运行结果如下 两个版本完成所需的时间几乎相同。在多线程版本中GIL 阻止 CPU 绑定线程并行执行。 GIL 对 I/O 绑定的多线程程序的性能没有太大影响因为在线程等待 I/O 时锁在线程之间共享。 但是线程完全受 CPU 限制的程序例如使用线程在部分中处理图像的程序不仅会因为锁而变成单线程而且执行时间也会增加如上例所示与编写为完全单线程的情况相比多线程增加的时间是由获取锁和释放锁带来的开销。   三、如何摆脱 Python 的全局锁的限制 1、使用多进程方法 每个 Python 进程都有自己的 Python 解释器和内存空间因此 GIL 不会成为问题。Python 有一个多进程multiprocessing 模块它让我们可以轻松地创建这样的进程 from multiprocessing import Pool import timeCOUNT 50000000 def countdown(n):while n0:n - 1if __name__ __main__:pool Pool(processes2)start time.time()r1 pool.apply_async(countdown, [COUNT//2])r2 pool.apply_async(countdown, [COUNT//2])pool.close()pool.join()end time.time()print(Time taken in seconds -, end - start) 与多线程版本相比性能有所提高。 2、使用 使用并发库比如cython 、asyncio、gevent、eventlet 等。这些库使用非阻塞 I/O 和协程等技术可以在单个线程中实现高效的并发处理避免 GIL 的限制。来避开全局锁 3、使用替代Python解释器 Python有多个解释器实现。CPythonJythonIronPython和PyPy分别用CJavaC#和Python编写是最受欢迎的。GIL 只存在于 CPython 的原始 Python 实现中。如果你的程序及其库可用于其他实现那么也可以尝试使用它们。当然使用非官方解释器的代价是无法使Cython.   参考 什么是Python全局锁(GIL)如何避开GIL限制_python 全局锁___弯弓__的博客-CSDN博客
http://www.hkea.cn/news/14443455/

相关文章:

  • 岳阳企业网站定制开发新媒体运营的相关优势
  • 企业网站建设要注意广东广州有几个区
  • 网站建设的ci设计指的是什么同城同镇网站建设
  • asp钓鱼网站开发深圳创业园
  • 有没有做美食的小视频网站多人在线协作网站开发
  • 广告设计毕业设计全国seo搜索排名优化公司
  • 网站流量好难做西安建设网站制作
  • 网站建设与维护 实训东莞微网站建设报价
  • 琼海做网站公司wordpress 信用卡支付
  • 邮箱的官方网站注册建筑给排水识图教程久久建筑网
  • 快速做网站的方法网站修改文案
  • 成都市做网站的公司有没有安全一点的网站
  • 绵阳汽车网站制作wordpress能不能导入html
  • 美食个人网站设计作品做网站中山
  • 微信网站跳转链接怎么做宣传手册设计模板
  • 网站建设陕icp贵州省教育厅办公室关于开展2014年学校门户网站建设评估的通知
  • 北京市建设监理协会网站今天开始做女神免费网站
  • mvc网站开发实例教程企业网站建设合同书标准版
  • 公司网站域名注册流程制作开发app的公司
  • 网站备案最快怎样进入网站的后台
  • 电子商务网站营销的方法热门视频素材
  • 种植类网站模板京东电器商城网上购物
  • 官方网站下载免费建e网效果图
  • 陕西建设银行网站在线做抽奖网站
  • 宁波本地模板网站建设平台怎么搞软件开发
  • 网站制作学习网站ps怎么制作网页设计
  • 怎么做网站推广云浮怎么上国外购物网站
  • 无锡做网站优化价格强强seo博客
  • 网盟官方网站自己在公司上班做网站宣传 侵权吗
  • 学校网站建设企业买了深圳安居房后悔了