当前位置: 首页 > 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.hkea.cn/news/14307308/

相关文章:

  • 手机网站开发最好用的框架百度的首页
  • 网站设计应该考虑的重要因素开发网站的公司
  • 阿里巴巴网站建设的背景杭州网络安全公司
  • 建公司网站流程电子商务营销网站建设
  • 嘉兴专业做网站的公司企业网络营销是什么
  • asp.net做报名网站网站域名绑定破解
  • 让你有做黑客感觉的网站制作应用的软件
  • 长春住房和城乡建设部官方网站wordpress手机端兼容
  • 企业网站的特点教师个人网站建设
  • 免费建站软件网站首页的功能需求分析
  • 阿里云虚拟主机建网站四川省建设网站
  • wordpress网站图片加速怎么在后台设置网站的关键词
  • 正在进入一站式服务平台一起做网站女装夏季
  • 什么公司可以做网站湖州 网站建设
  • 徐州建设网站价格团购网站制作
  • 佛山做网站的公司深圳做网页的公司
  • 山东省建设厅制一网站哈尔滨工程建设
  • 金融投资网站模板老房装修
  • 网站开发范例文档网站的元素有哪些
  • 通过招聘网站如何做背景调查软件开发需要哪些软件
  • 乐山电商网站开发什么是网络管理
  • iis7配置asp网站上海百度公司总部
  • 无法跳转到建设银行网站重庆今天刚刚发生的新闻事件
  • 响应式网站生成wordpress扁平化中文主题
  • 济南商城网站制作网站建设的策划文案
  • 外贸网站公司找我家是做的视频网站好
  • 兼职做设计的网站在线制作logo设计
  • iis7添加php网站如何选择做pc端网站
  • 网站做图尺寸大小做外国网站用什么服务器
  • 做网站360业务平面广告设计培训班费用