import java.io.File;
import java.io.FileOutputStream;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.channels.FileLock;
public class FileLockTest {
static File file = new File("D:\\log6666666.txt");
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
FileChannel channel = new FileOutputStream(file).getChannel();
FileLock lock = channel.tryLock();
String name = Thread.currentThread().getName();
ByteBuffer sendBuffer=ByteBuffer.wrap((name+" 写入").getBytes("UTF-8"));
channel.write(sendBuffer);
Thread.sleep(30000);
lock.release();
}
}
当运行另一进程时:
Exception in thread "main" java.io.IOException: 另一个程序已锁定文件的一部分,进程无法访问。
at sun.nio.ch.FileDispatcher.write0(Native Method)
at sun.nio.ch.FileDispatcher.write(FileDispatcher.java:44)
at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:104)
at sun.nio.ch.IOUtil.write(IOUtil.java:75)
at sun.nio.ch.FileChannelImpl.write(FileChannelImpl.java:204)
at FileLockTest.main(FileLockTest.java:20)
分享到:
相关推荐
这个压缩包“使用FileLock实现进程的互斥.rar”可能包含了一些示例代码,帮助开发者理解如何在Java中使用`FileLock`来防止并发冲突。 `FileLock`是Java `java.nio.channels.FileChannel`类的一个方法,它提供了锁定...
在Java中,`FileLock`类提供了一种方法来实现对文件的独占式锁定,从而达到进程间的互斥。 `FileLock`是Java NIO(非阻塞I/O)的一部分,它允许程序锁定一个文件或者文件的部分区域,以防止其他进程同时读写该文件...
为了解决这个问题,`filelock`库提供了一种简单且有效的机制,允许程序在需要时锁定文件,防止其他进程在同一时刻进行读写操作。这样可以确保数据的完整性,并避免竞态条件。 `filelock`库的核心类是`FileLock`,它...
在IT行业中,尤其是在操作系统级别的开发或者系统编程领域,文件锁(File Lock)是一个非常重要的概念。文件锁主要用于解决多进程或线程同时访问同一文件时可能产生的数据冲突问题。在这个场景中,"08-filelock.rar...
8. **异常处理**:`filelock`库在文件锁定过程中可能会抛出一些异常,如`OSError`,通常是因为权限问题或其他操作系统级别的错误。因此,使用文件锁时,应妥善处理这些异常。 9. **示例代码**: ```python from ...
强大的文件删除工具,当你删除文件时,可能遇到文件无法删除,这时候,filelock就可以轻松帮助你解决文件。
CnCrypt FileLock添加文件或目录后,创建自定义保护规则。能够提供隐藏、锁定、隐藏并锁定三种保护模式,可添加例外进程。保护你的文件、文件夹不被别人轻易打开、阅读、修改、删除、移动、复制,甚至你可以设置让...
我昨天刚开始用的加密软件,可以一次加密多个文件。如果想加密文件夹的话可以先将其打包。用过后感觉不错的。软件不需安装,但需要点击“绿化”。安装时请查看解压目录上的说明。加密器的初始密码是123456,绿化后请...
为了解决多进程间的互斥写问题,我们需要借助于SQLite的内部锁定机制或者操作系统级别的文件锁定。 SQLite提供了一种称为"事务"的机制,用于保证数据的一致性。事务允许将一组数据库操作视为一个单元,如果所有操作...
离线安装包,亲测可用
资源来自pypi官网。 资源全名:types_filelock-0.1.3-py2.py3-none-any.whl
例如,在Windows上,文件锁仅在进程级别生效,而在Unix/Linux系统上,它们是跨进程的。 8. **异常处理**:在处理文件锁时,必须妥善处理异常,因为许多操作(如获取、释放锁)可能会抛出`IOException`。通常,需要...
install.packages( " filelock " ) 用法 library( filelock ) 这是R进程1,它获得了排它锁。 如果要锁定文件myfile ,请始终创建一个单独的锁定文件,而不是将锁定直接放在此文件上! R1 > lck <- lock( " /...
Java的`java.nio.channels.FileLock`可以用来解决这个问题,确保同一时间只有一个进程能访问特定的文件部分。 6. **信号量(Semaphores)和互斥锁(Mutexes)**:Java的`java.util.concurrent`包提供了`Semaphore`...
# 官方离线 whl 包 # 离线安装 whl 指令,/data/pkg/whls 为本地 whl 文件路径 pip install --no-index --find-links=/data/pkg/whls *.whl
filelock-3.15.4-py3-none-any
2. **java.nio.channels.FileLock**:Java新I/O(NIO)中的类,允许对文件进行加锁操作,用于检测某个文件是否正被另一个进程占用,从而判断程序状态。 3. **ProcessBuilder与Process**:这两个类允许Java程序调用...
让我们深入探讨一下这个主题,了解文件加密的概念、工作原理以及如何通过源码实现。 文件加密是一种将普通文本(明文)转换为不可读格式(密文)的技术,以防止未经授权的访问。这种技术依赖于加密算法,常见的有...
然而,Java可以通过与其他语言(如C++)的互操作,或者利用操作系统级别的进程间通信(IPC)机制来实现多进程通信。其中一种常见的方式是使用文件作为中介,即进程通过读写文件来交换数据。此外,Java也可以利用套接...
对于更复杂的场景,如跨进程的锁,我们可以使用`FileLock`: ```python from locker import FileLock lock = FileLock('mylock') with lock: # 这里对共享资源进行操作 ``` 在实际开发中,`python-locker`库常...