NIO中获得通道的方式以及线程的实现方式,安全问题,锁

本文介绍了Java NIO获取通道的四种方式,包括FileInputStream、FileChannel、Files类以及Channels类的方法。接着详细阐述了Java中实现线程的三种方式,包括继承Thread、实现Runnable接口和实现Callable接口。还讨论了多线程安全问题,如线程安全的条件、原子性问题以及解决方法,如synchronized和Lock锁。最后提到了线程的死锁现象。
摘要由CSDN通过智能技术生成

在这之前首先重复一下获取通道的4种方式

通道:获取通道的方式1

FileInputStream in = new FileInputStream(“a.txt”);
FileOutputStream out = new FileOutputStream(“aa.txt”);
FileChannel 本地的文件传输通道
FileChannel inChannel = in.getChannel();
FileChannel outChannel = out.getChannel();

获取通道方式2

FileChannel inChannel = FileChannel.open(Paths.get(“a.txt”), StandardOpenOption.READ);
FileChannel outChannel = FileChannel.open(Paths.get(“bb.txt”), StandardOpenOption.WRITE, StandardOpenOption.CREATE);

获取通道的方式三 JDK1.7 提供了一个类 Files

SeekableByteChannel inChannel = Files.newByteChannel(Paths.get(“a.txt”), StandardOpenOption.READ);
SeekableByteChannel outChannel = Files.newByteChannel(Paths.get(“cc.txt”), StandardOpenOption.WRITE, StandardOpenOption.CREATE);

获取通道的方式4 JDk1.7 有个 Channels

ReadableByteChannel inChannel = Channels.newChannel(new FileInputStream(“a.txt”));
WritableByteChannel outChannel = Channels.newChannel(new FileOutputStream(“dd.txt”));
除此之外,我们还可以直接通过通道传输,代码如下:
直接从输入通道传个输出通道
inChannel.transferTo(0,inChannel.size(),outChannel);
站在输出通道的角度来看
outChannel.transferFrom(inChannel,0,inChannel.size());
接下来我们就开始讲解线程:

线程

Java中的多线程,执行是随机的。因为Java中的线程调度模式是抢占式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值