大家写过多线程都用过java.util.concurrent包,自己创建线程池,自己实现run 或者call接口创建线程类,之后提交给线程池运行。
之前大家读写文件,必须得等待IO完成。如果要想节约时间,还得自己实现上面多线程那一套。今天刚知道异步IO这个东西,不用自己实现多线程了。下面是示例代码:
public static void asynchronousFileIO()
{
Path path = Paths.get("resource/Stopword.txt");
try
{
AsynchronousFileChannel channel = AsynchronousFileChannel.open(path);
ByteBuffer buffer = ByteBuffer.allocate(1000);
Future<Integer> future = channel.read(buffer, 0);
while (!future.isDone())
{
System.out.println("Do others...");
}
Integer number = future.get();
System.out.println("Read " + number + " content : " + new String(buffer.array()));
channel.close();
} catch (IOException | InterruptedException | ExecutionException e)
{
e.printStackTrace();
}
}