![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
NIO学习
stalin_
程序员界的小学生
展开
-
Java NIO--大文件的高效复制--FileChannel的使用
Java IO的各种流是阻塞的。这意味着,当一个线程调用read() 或 write()时,该线程被阻塞,直到有一些数据被读取,或数据完全写入。该线程在此期间不能再干任何事情了。 Java NIO的非阻塞模式,使一个线程从某通道发送请求读取数据,但是它仅能得到目前可用的数据,如果目前没有数据可用时,就什么都不会获取。而不是保持线程阻塞,所以直至数据变的可以读取之前,该线程可以继续做其他的事...原创 2018-05-17 15:57:10 · 2755 阅读 · 0 评论 -
Java NIO--文件锁的使用方法
由于是做分布式的中间件开发,不可避免会出现多个线程对同一个文件进行操作,这样会出现很多问题。如果多个线程同时对一个文件进行写操作,会乱掉。所以我们需要对文件进行加锁,使其每次只能被一个线程操作。这样才能保证文件中的内容可以被有序的写入。 文件锁分为共享锁,和排他锁,通过字节流获得通道来实现,进行相应的互斥访问或排它访问。 共享锁:如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不...原创 2018-08-06 18:42:12 · 461 阅读 · 0 评论