JDK1.4非阻塞套接字API概述
|
J2SE 1.4版引入了非阻隔套接字(Nonblocking sockets),它允許在網絡通信應用程序和沒有阻隔的進程中使用套接字。本文將詳細介紹什么是非阻隔套接字(Nonblocking sockets)及其工作原理和用途。
從Java 1.4起,程序員便能用一組新的API來進行I/O操作。這是JSR 51項目的結果,自2000年1月的Java 1.4 beta版,程序員便可以使用JSR 51了。在Java 1.4中增加了一些非常重要的新技術來處理諸如在文件和套接字上進行高性能的讀/寫操作,正規表達式,譯碼/編碼字符集,內存映射和文件鎖定。在這篇文章中,我們將討論一個特殊的新API――New I/O API: Nonblocking sockets。
非阻隔套接字允許在通道上做輸入/輸出操作而不用阻塞該通道的進程。本文中我將討論異步高性能讀/寫操作和翻轉上下設計和開發基于接口的應用程序的技巧。
Java開發者也許會問,為什么介紹一種新的技術來處理套接字?Java 1.3.x的套接字又有哪些問題?假設實現服務器端接受不同的客戶端的連接。同樣,假設客戶端能支持處理同步的多請求。使用Java 1.3.x,開發這樣的服務器端有兩種不同的選擇:
●實現多線程服務為每個連接用戶處理線程。
●使用外部第三方模塊。
這兩種方法都可以實現,但是如果適用第一種方法――整個線程管理方案,包括相關并發性和沖突問題――都需要靠程序員來處理。第二個方案也許花費更大,且使應用程序依靠“non-JDK”的外部模塊。依靠非阻隔套接字,你能實現非阻隔的服務無需直接管理線程或者采用外部模塊。