在这之前首先重复一下获取通道的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中的线程调度模式是抢占式