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

临沂网站建设推广建设网站托管费用

临沂网站建设推广,建设网站托管费用,网站做跳转的意义,网站开发与实训报告多个进程共享同一份资源#xff08;共享内存、文件等#xff09;时#xff0c;会涉及到资源竞争问题。为了解决这种问题#xff0c;一般采取的措施是进程在访问资源前加锁保护#xff0c;避免多个进程同时读写。本文介绍的Python文件锁可以用来解决多进程的同步问题。 目录…多个进程共享同一份资源共享内存、文件等时会涉及到资源竞争问题。为了解决这种问题一般采取的措施是进程在访问资源前加锁保护避免多个进程同时读写。本文介绍的Python文件锁可以用来解决多进程的同步问题。 目录1 Linux下的Python文件锁2 Windows下的Python文件锁3 总结3.1 filelock的使用场景进程一进程二1 Linux下的Python文件锁 Linux下使用文件锁用到了fcntl模块该模块是标准库用来对文件描述符执行文件控制和I/O控制。 fcntl的文件锁用到了fcntl.flock(fd, operation)方法它的官方说明如下 对文件描述符fd执行锁定操作。 如果flock失败将引发OSError异常。 参数含义 fd要锁定的文件的描述符。 operation操作类型有以下三种。 类型描述LOCK_UN解锁LOCK_SH获取共享锁所有进程都只能读不能写LOCK_EX获取独占锁只有当前进程可以读写LOCK_NB非阻塞加锁失败或成功都立即返回如果不加这个参数函数会一直阻塞直到拿到锁。 用法 def tryLock(f) :try :fcntl.flock(f, fcntl.LOCK_EX | fcntl.LOCK_NB)return Trueexcept Exception as e:return Falsedef tryUnLock(f) :try :fcntl.flock(f, fcntl.LOCK_UN)return Trueexcept Exception as e:return Falsef open(file.txt, w) if tryLock(f) True:f.write(1234)tryUnLock(f)flock函数在执行失败时会抛出异常所以要用try-except来捕捉避免flock的时候程序退出。 fcntl模块支持在独占模式下写文件。 2 Windows下的Python文件锁 Windows版本的Python没有提供fcntl模块它使用文件锁时使用的是filelock模块需要自己安装。 打开命令行安装。 pip install filelock虽然没找到filelock的官方文档但可以通过dir函数来看它有些什么方法。 import filelock print(dir(filelock))输出。 [AcquireReturnProxy, BaseFileLock, FileLock, SoftFileLock, Timeout, UnixFileLock, WindowsFileLock, _FileLock, __all__, __annotations__, __builtins__, __cached__, __doc__, __file__, __loader__, __name__, __package__, __path__, __spec__, __version__, _api, _error, _soft, _unix, _util, _windows, annotations, has_fcntl, sys, version, warnings]Python里形如__xxx__的一般都是私有成员。 没有直接提供方法但从中能看到一个FileLock类和__path__路径打印一下。 import filelock print(dir(filelock.FileLock)) print(filelock.__path__)输出。 [__abstractmethods__, __call__, __class__, __del__, __delattr__, __dict__, __dir__, __doc__, __enter__, __eq__, __exit__, __format__, __ge__, __getattribute__, __gt__, __hash__, __init__, __init_subclass__, __le__, __lt__, __module__, __ne__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __slots__, __str__, __subclasshook__, __weakref__, _abc_impl, _acquire, _recreate_cm, _release, acquire, is_locked, lock_file, release, timeout][D:\\xxx\\xxx\\xxx\\site-packages\\filelock]FileLock提供了acquire、is_locked、release、timeout。按照名称acquire和release是上锁和解锁的方法timeout是上锁的超时限制。 进入__path__所在目录用vscode的全局搜索分别找到FileLock、acquire、release、timeout。 用这种方法得到以下使用例程。 from filelock import FileLock import timedef tryLock(locker, timeout 3):try:locker.acquire(timeout)return Trueexcept Exception as e:return Falsedef tryUnLock(locker):try:locker.release()return Trueexcept Exception as e:return Falselocker FileLock(file.txt) if tryLock(locker, 0.1) True:time.sleep(5)tryUnLock(locker)filelock同样是通过抛出异常来表示上锁失败。 filelock模块在上锁状态下不允许写文件。 filelock支持在Linux环境下使用。 3 总结 在Linux环境下可以用fcntl或者filelock模块来实现文件锁功能而在Windows环境下只能用filelock。 fcntl和filelock上锁的区别 filelockfcntl可以设置阻塞超时时长可以设置阻塞和非阻塞没有超时机制上锁后不能访问文件在LOCK_EX 独占锁模式下当前进程可以读写文件需要自行安装Python自带的标准库 3.1 filelock的使用场景 filelock在上锁之后不能访问文件那么它有什么用呢 在应用中可以把filelock上锁的文件作为进程间同步的标志物比如以下例子 tryLock和tryUnLock使用的是第二节例程的。 进程一 locker FileLock(lock_file) while True:if tryLock(locker) True:## operate1tryUnLock(locker)进程二 locker FileLock(lock_file) while True:if tryLock(locker) True:## operate2tryUnLock(locker)以上两个进程同时运行可以确保操作互不干扰。
http://www.dnsts.com.cn/news/26222.html

相关文章:

  • 济南中建设计院网站视频网站怎么做统计
  • 主色调为绿色的网站江苏中盛建设集团网站
  • pageadmin wordpress石家庄百度提升优化
  • 网站开发技术难度深圳网站建设 龙华信科
  • 网站建设好吗湖南装修公司排名10名
  • 昆明网站建设优化网站建设未完成
  • ps如何做切片网站按钮网站建设分为哪几种类型
  • 企业网站备案需要法人拍照吗网站建设网站需求分析报告功能
  • 陕西网站建设陕icp备网站建设方案范本
  • 网站标题做参数有关wordpress教学的网站
  • 网站开发软件开发流程图湘潭网站建设 x磐石网络
  • 手机网站seo怎么做作图网站
  • 做自己的网站要多少钱dw做的网站如何上传图片
  • 苏州网站快速推广创建一个网站需要做哪些工作
  • 制作英文网站泰州网站建设专业团队
  • 安徽芜湖网站建设长沙企业seo优化
  • 做网商哪个国外网站好ftp上传网站全教程
  • 国外公共空间设计网站注册网站做推广
  • 潍坊网站制作保定公司电话网页模板免费资源
  • 晚上奖励自己的网站推荐wordpress app中文版下载
  • 哪里可以建网站天津塘沽爆炸
  • 易网拓营销型网站西峡网站开发
  • 快速学制作网站珠海做网站哪里公司好
  • 网站开发使用的语言类网站开发的课程
  • 原创作文网站怎样编辑网站标题
  • wordpress里验证谷歌站长电子商务网站平台建设策划
  • 教学网站在线自测功能怎么做北京做手机网站设计
  • 专业商城网站搭建价格怎么做页码
  • 中国建站网c2c模式的特点有哪些
  • 长沙网站seo推广推广方案设计