Như đã thấy trong các ví dụ trước đó trong cuốn sách này, runTest () được sử dụng mẫu phương pháp để tạo ra một khuôn khổ thử nghiệm cho việc triển khai khác nhau của thử nghiệm () được định nghĩa trong phân lớp bên trong vô danh. Mỗi người trong số các phân lớp thực hiện một loại thử nghiệm, vì vậy phương pháp thử nghiệm () cũng cung cấp cho bạn một mẫu thử nghiệm để thực hiện các hoạt động I/O khác nhau. Mặc dù có vẻ như một ghi được ánh xạ sử dụng một FileOutputStream, các đầu ra tất cả trong tập tin bản đồ phải sử dụng một RandomAccessFile, cũng giống như đọc/ghi thực hiện trong mã trước. Lưu ý rằng phương pháp () thử nghiệm bao gồm thời gian để khởi động của các đối tượng I/O khác nhau, do đó, mặc dù các thiết lập cho các tập tin được ánh xạ có thể tốn kém, lợi ích tổng thể so với dòng I/O là đáng kể. Tập thể dục 25: (6) thử nghiệm với thay đổi những điều khoản () ByteBuffer.allocate trong các ví dụ trong chương này để ByteBuffer.allocateDirect (). Chứng minh sự khác biệt hiệu suất, nhưng cũng thông báo cho dù thời gian khởi động của các chương trình đáng chú ý thay đổi. Tập thể dục 26: (3) strings/JGrep.java sử dụng Java nio memorymapped tập tin sửa đổi. Tệp khóa Tệp khóa cho phép bạn đồng bộ hóa quyền truy cập vào một tập tin như là một nguồn lực được chia sẻ. Tuy nhiên, hai chủ đề cho cho cùng một tập tin có thể trong JVMs khác nhau, hoặc một trong những có thể là một chủ đề Java và khác một số nguồn gốc sợi chỉ trong hệ điều hành. Khóa tập tin có thể nhìn thấy quá trình hệ điều hành khác vì Java khóa tập tin bản đồ trực tiếp đến hệ điều hành gốc khóa cơ sở. Đây là một ví dụ đơn giản tập tin khóa.
đang được dịch, vui lòng đợi..
