Java和python进程可以独占locking在linux上的同一个文件【JAVA教程】

!
也想出现在这里? 联系我们
信息

Java和python进程可以独占locking在linux上的同一个文件,第1张

概述Java和python进程可以独占locking在linux上的同一个文件

我有一个Java应用程序和一个python启动器。 Java应用程序locking一个文件,以避免使用此代码的多个启动:

java.nio.channels.fileLock lock = lockWrapper.getChannel().tryLock(); if (lock == null) { logger.info(\”Anotheris already running\”); } lock.release(); staticLock = lockWrapper.getChannel().lock();

python启动器试图用fcntllocking同一个文件,它可以。 两个java进程不能做到这一点,两个python进程都不能locking在同一个文件上。 但是,一个Java和一个Python可以在任何方向。 我在一个openjdk 6和python2.7的xubuntu我使用Pythonock的门户网站。

lockfile =open(lockfilename,\’w+\’) portalocker.lock(lockfile,portalocker.LOCK_EX| portalocker.LOCK_NB)

在win7上也能正常工作。

从tomcat服务器的webapp调用java程序 – java程序在tomcat服务器的外面

在Ubuntu 9.10中安装play-framework

在linux上使用Java 6,我该如何确保使用一个ipv4套接字?

在Ubuntu中安装eclipse 3.8中的maven

专门用于windows的java库

线程“main”中的exceptionjava.lang.NoClassDefFoundError:org / apache / hadoop / util / Platformname

在Java Web应用程序中获取windowslogin详细信息

在任何情况下使用C#检索Java安装目录

httpClIEntBuilder的基本身份valIDation

为什么paintComponent从不叫?

我从同事那里得到了答案,这很简单。 Java不使用POSIX锁,但Python。 所以他们不能互相 *** 作

事实上,他们可以,但只有当一个人可以迫使两个运行时使用相同的锁定机制。 但是这会迫使你对代码进行硬编码,使得代码变得脆弱而且非常依赖于平台。

这对我在linux el6上适用。 使用fileLock和Python 2.6的Oracle Java 7可以正确地锁定文件。 编辑:使用F_SETLKW阻塞/等待 *** 作。

Python代码不可移植。 这在我的环境中不是问题。

import fcntl,struct,time f = open(\”/tmp/TestLock\”,\”w\”) lockdata = struct.pack(\’hhllhh\’,fcntl.F_WRLCK,0) unlockdata = struct.pack(\’hhllhh\’,fcntl.F_UNLCK,0) while True: try: fcntl.fcntl(f.fileno(),fcntl.F_SETLK,lockdata) print \”Lock held\” time.sleep(5) except IOError as ex: print \”Lock Failed: \”+ex.strerror if ex.errno == 11: time.sleep(0.5) else: break continue else: fcntl.fcntl(f.fileno(),unlockdata)

参考: https : //docs.python.org/2/library/fcntl.HTML搜索页面的SVR4(底部)

参考: https : //community.dur.ac.uk/physics.astrolab/file_locking.HTML

总结

以上是内存溢出为你收集整理的Java和python进程可以独占locking在linux上的同一个文件全部内容,希望文章能够帮你解决Java和python进程可以独占locking在linux上的同一个文件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

© 版权声明
THE END
喜欢就支持一下吧
点赞72 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容