-
17-09-2013, 06:52 PM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Một số thuật ngữ cần nắm chắc khi tìm hiểu về Java NIO
1.Java NIO
Là API cung cấp các khả năng xuất nhập dữ liệu giữa chương trình và bên ngoài, được cải tiến từ API Java IO cũ để cũng cấp hiệu năng cao hơn.
2.Block – oriented I/O
Là phương thức vào/ra dữ liệu trong đó làm việc với các khối dữ liệu (1 dãy nhiều byte dữ liệu)
3.Buffer
Buffer (chính xác là data buffer) là 1 nơi chứa tạm 1 lượng dữ liệu trong khi dữ liệu đang tiếp tục truyền từ nơi này đến nơi khác.
Trong Java NIO, buffer được quản lý bởi đối tượng Buffer (của class java.nio.Buffer). Buffer là 1 class trừu tượng, các buffer của các class con sẽ tương ứng với các kiểu dữ liệu nguyên thủy (trừ kiểu Boolean- không có BooleanBuffer).
Các method quan trọng: position, capacity, clear, put, get
4.Buffer trực tiếp
Là loại buffer mà việc cấp phát bộ nhớ được thực hiện theo 1 cách giúp tăng tốc độ vào ra dữ liệu: tránh việc copy nội dung sang/từ 1 buffer trung gian
5.Memory-mapped file
Memory mapped file là 1 phân đoạn trong bộ nhớ ảo mà ánh xạ trực tiếp từng byte với 1 tài nguyên dạng file hoặc 1 phần của 1 tài nguyên dạng file. (Tài nguyên dạng file có thể là file, thư mục, thiết bị v.v…)
6.Persisted memory-mapped file
Là loại memory-mapped file mà gắn với 1 file lưu trữ trong bộ nhớ thứ cấp (đĩa). Khi kết thúc tiến trình, nội dung sẽ được lưu.
7.Non-persisted memory-mapped file
Là loại memory-mapped file mà không gắn với 1 file lưu trữ trong bộ nhớ thứ cấp (đĩa). Khi kết thúc tiến trình,nội dung sẽ mất và vùng nhớ được giải phóng
8.Memory-mapped file I/O
Là phương pháp vào ra dữ liệu sử dụng memory-mapped file.
Ưu điểm: nhanh
Nhược điểm: nếu lạm dụng sẽ chiếm nhiều bộ nhớ và tốn thời gian khởi tạo
Áp dụng: FileChannel.map() trả về MappedByteBuffer
9. Rải/gom
Rải/gom là 1 một phương pháp đọc ghi dữ liệu dùng nhiều buffer thay vì chỉ 1 buffer.
10.Channel
Channel là thuật ngữ dùng để mô tả sự kết nối trao đổi dữ liệu (có thể hai chiều) giữa điểm này và điểm khác.
Channel hoạt động kết hợp với Buffer
Trong Java NIO, channel được quản lý bởi các đối tượng channel (dẫn xuất từ interface java.nio.channels.Channel). Các đối tượng channel tương tự các đối tượng stream nhưng điểm khác biệt lớn nhất là nó có tính 2 chiều,có thể đọc và ghi đồng thời (nếu nó implement các interface cho phép đọc và cho phép ghi)..
11. Multiplexing (Muxing)
Là phương thức truyền thông trong đó nhiều tín hiệu/dữ liệu được kết hợp truyền chung trên 1 phương tiện
12.Phép khóa file (File locking)
Là cơ chế giới hạn truy cập (đọc/ghi) file, user/process/thread/transaction nào được đọc hay ghi vào 1 thời điểm nhất định nào đó
Tuy nhiên, nếu áp dụng không đúng, có thể dẫn đến sụt giảm hiệu năng hoặc dẫn đến hiện tượng deadlock (các bên chờ đợi lẫn nhau và mãi không có quyền truy cập tài nguyên)
13.Phép khóa file một cách bắt buộc (mandatory file locking):
Là phép khóa file mà chỉ đơn thuần ngăn cản việc đọc/ghi 1 file một cách bắt buộc (chỉ có một là được đọc/ghi, hai là không được đọc/ghi).
14.Phép khóa file một cách khuyến nghị (advisory file locking):
Là phép khóa file mà điều phối linh hoạt quyền đọc/ghi 1 file bằng các giao nhận các khóa (gồm 2 loại: khóa loại trừ và khóa được chia sẻ). Như vậy thì 1 file đang được đọc bởi 1 process có thể cho phép một tiến trình khác đọc cùng nhưng cấm tiến trình khác đó ghi.
15. Khóa loại trừ (exclusive lock)
Khóa loại trừ, đôi khi gọi là khóa ghi là loại khóa mà chỉ có duy nhất 1 bên được nhận tại 1 thời điểm nhất định bất kỳ, nó dùng để tránh xung đột khi ghi.
16. Khóa được chia sẻ (shared lock)
Khóa được chia sẻ, đôi khi gọi là khóa đọc là loại khóa mà cho phép nhiều bên cùng được nhận nếu như tài nguyên không có bên nào ghi (hoặc đợi ghi), nó dùng để bảo đảm tính toàn vẹn khi đọc.
17.Blocking
Một tiến trình gọi là bị block khi nó phải chờ 1 sự kiện nào đó xảy ra, chẳng hạn như sự sẵn sàng của 1 tài nguyên (CPU, bộ nhớ, đĩa, mạng v.v…) hoặc sự hoàn tất của 1 thao tác vào ra dữ liệu nào đó.
18.Asynchronous I/O
Là phương pháp vào ra dữ liệu mà cho phép các tiến trình có thể thực vào-ra dữ liệu mà không bị block
Ưu điểm: Hiệu quả
Nhược điểm: Khó thiết kế, cần thận trọng khi lập trình
19.Callback
Là một khái niệm chung chỉ đoạn mã chạy được mà được sử dụng làm đối số trong một đoạn mã khác, với dự định sẽ gọi nó vào 1 thời điểm thích hợp.
20.Synchronous Callback (còn gọi là blocking callback)
Là loại callback mà được thực hiện ngay
21.Asynchronous Callback (còn gọi là deferred callback)
Là loại callback mà chờ 1 sự kiện xảy ra thì thực hiện
22.Event handler
Là một khái niệm chung chỉ 1 asynchronous callback được gọi để phản ứng trước 1 sự kiện nào đóView more random threads:
- Hướng dẫn lập trình Android với Android x86 trên Virtualbox [Tutorial dành cho máy cấu hình yếu]
- Địa Điểm Sửa Máy Tính Shock Tận Nhà Quận 3
- [buổi chia sẻ kiến thức thực tế java]
- Lập trình web với java
- Nơi Cài Phần Mềm AutoCad Chất Lượng Q 6 Tại Chỗ
- Xin file txt cơ sơ dữ liệu bài từ điển mọi người ơi
- Các loại reference trong Java: strong reference, soft reference, weak reference, phantom reference và ứng dụng
- Các khái niệm về hướng đối tượng OOP trong Java
- Hướng dẫn sử dụng Apache Commons CLI để tạo giao diện cmd truyền tham số
- [Tutorial Clip]JComboBox, JList, JTree, JTable với các lớp Model
Thông qua phân tích dữ liệu Google từ 86 quốc gia, mới đây, một công ty tại Anh đã công bố bảng xếp hạng kích tấc "cậu nhỏ" của các nước trên thế giới. Kết quả, hầu hết các nước xếp ở nhóm đầu của...
"Chim" của chàng trai Việt thuộc...