Java和python进程可以独占锁定linux上的相同文件
发布时间:2020-12-14 19:23:53 所属栏目:Java 来源:网络整理
导读:我有一个 java应用程序和一个python启动器. java应用程序使用此代码锁定文件以避免多次启动: java.nio.channels.FileLock lock = lockWrapper.getChannel().tryLock();if (lock == null) { logger.info("Anotheris already running");}lock.release();stati
我有一个
java应用程序和一个python启动器. java应用程序使用此代码锁定文件以避免多次启动:
java.nio.channels.FileLock lock = lockWrapper.getChannel().tryLock(); if (lock == null) { logger.info("Anotheris already running"); } lock.release(); staticLock = lockWrapper.getChannel().lock(); python启动程序试图用fcntl锁定同一个文件,它可以.两个java进程不能这样做,并且两个python进程都不能独占锁定在同一个文件上.但是java和python可以在任何方向上. lockfile =open(lockfilename,'w+') portalocker.lock(lockfile,portalocker.LOCK_EX| portalocker.LOCK_NB) 在win7上也可以正常工作. 解决方法
我得到了同事的答案,这很简单. Java不使用POSIX锁,但是python可以.所以他们不能互操作……
实际上他们可以,但只有当一个人可以强制两个运行时使用相同的锁定机制.但是这迫使你对它进行硬编码,使代码变得脆弱并且非常依赖于平台. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |