天天看點

Java 網絡程式設計實戰(二) - Unix的I/O模型解析網絡程式設計的本質是程序間通信2 通信的基礎是IO模型3 java.io 家族4 設計模式 - 裝飾器模式Socket也是一種資料源Unix中的Socket是什麼通過socket發送資料同步/異步/阻塞/非阻塞複用線程 -線程池

網絡程式設計的本質是程序間通信

Java 網絡程式設計實戰(二) - Unix的I/O模型解析網絡程式設計的本質是程式間通信2 通信的基礎是IO模型3 java.io 家族4 設計模式 - 裝飾器模式Socket也是一種資料源Unix中的Socket是什麼通過socket發送資料同步/異步/阻塞/非阻塞複用線程 -線程池

2 通信的基礎是IO模型

輸入流

Java 網絡程式設計實戰(二) - Unix的I/O模型解析網絡程式設計的本質是程式間通信2 通信的基礎是IO模型3 java.io 家族4 設計模式 - 裝飾器模式Socket也是一種資料源Unix中的Socket是什麼通過socket發送資料同步/異步/阻塞/非阻塞複用線程 -線程池

檔案,Java對象,字元串都可以是資料源

輸出流

Java 網絡程式設計實戰(二) - Unix的I/O模型解析網絡程式設計的本質是程式間通信2 通信的基礎是IO模型3 java.io 家族4 設計模式 - 裝飾器模式Socket也是一種資料源Unix中的Socket是什麼通過socket發送資料同步/異步/阻塞/非阻塞複用線程 -線程池

3 java.io 家族

Java 網絡程式設計實戰(二) - Unix的I/O模型解析網絡程式設計的本質是程式間通信2 通信的基礎是IO模型3 java.io 家族4 設計模式 - 裝飾器模式Socket也是一種資料源Unix中的Socket是什麼通過socket發送資料同步/異步/阻塞/非阻塞複用線程 -線程池

字元流

Java 網絡程式設計實戰(二) - Unix的I/O模型解析網絡程式設計的本質是程式間通信2 通信的基礎是IO模型3 java.io 家族4 設計模式 - 裝飾器模式Socket也是一種資料源Unix中的Socket是什麼通過socket發送資料同步/異步/阻塞/非阻塞複用線程 -線程池
Java 網絡程式設計實戰(二) - Unix的I/O模型解析網絡程式設計的本質是程式間通信2 通信的基礎是IO模型3 java.io 家族4 設計模式 - 裝飾器模式Socket也是一種資料源Unix中的Socket是什麼通過socket發送資料同步/異步/阻塞/非阻塞複用線程 -線程池

位元組流

Java 網絡程式設計實戰(二) - Unix的I/O模型解析網絡程式設計的本質是程式間通信2 通信的基礎是IO模型3 java.io 家族4 設計模式 - 裝飾器模式Socket也是一種資料源Unix中的Socket是什麼通過socket發送資料同步/異步/阻塞/非阻塞複用線程 -線程池
Java 網絡程式設計實戰(二) - Unix的I/O模型解析網絡程式設計的本質是程式間通信2 通信的基礎是IO模型3 java.io 家族4 設計模式 - 裝飾器模式Socket也是一種資料源Unix中的Socket是什麼通過socket發送資料同步/異步/阻塞/非阻塞複用線程 -線程池

4 設計模式 - 裝飾器模式

Java 網絡程式設計實戰(二) - Unix的I/O模型解析網絡程式設計的本質是程式間通信2 通信的基礎是IO模型3 java.io 家族4 設計模式 - 裝飾器模式Socket也是一種資料源Unix中的Socket是什麼通過socket發送資料同步/異步/阻塞/非阻塞複用線程 -線程池
  • 奶茶店裡面的裝飾器模式(珍珠隻是裝飾)
Java 網絡程式設計實戰(二) - Unix的I/O模型解析網絡程式設計的本質是程式間通信2 通信的基礎是IO模型3 java.io 家族4 設計模式 - 裝飾器模式Socket也是一種資料源Unix中的Socket是什麼通過socket發送資料同步/異步/阻塞/非阻塞複用線程 -線程池

Socket也是一種資料源

Java 網絡程式設計實戰(二) - Unix的I/O模型解析網絡程式設計的本質是程式間通信2 通信的基礎是IO模型3 java.io 家族4 設計模式 - 裝飾器模式Socket也是一種資料源Unix中的Socket是什麼通過socket發送資料同步/異步/阻塞/非阻塞複用線程 -線程池
  • Socket是網絡通信的端點
Java 網絡程式設計實戰(二) - Unix的I/O模型解析網絡程式設計的本質是程式間通信2 通信的基礎是IO模型3 java.io 家族4 設計模式 - 裝飾器模式Socket也是一種資料源Unix中的Socket是什麼通過socket發送資料同步/異步/阻塞/非阻塞複用線程 -線程池

Unix中的Socket是什麼

◆ Unix系統中一切皆是檔案

◆ 檔案描述符表是已打開檔案的索引

◆ 每個程序都會維護一個檔案描述符表

通過socket發送資料

Java 網絡程式設計實戰(二) - Unix的I/O模型解析網絡程式設計的本質是程式間通信2 通信的基礎是IO模型3 java.io 家族4 設計模式 - 裝飾器模式Socket也是一種資料源Unix中的Socket是什麼通過socket發送資料同步/異步/阻塞/非阻塞複用線程 -線程池

同步/異步/阻塞/非阻塞

Java 網絡程式設計實戰(二) - Unix的I/O模型解析網絡程式設計的本質是程式間通信2 通信的基礎是IO模型3 java.io 家族4 設計模式 - 裝飾器模式Socket也是一種資料源Unix中的Socket是什麼通過socket發送資料同步/異步/阻塞/非阻塞複用線程 -線程池
  • 排列組合
Java 網絡程式設計實戰(二) - Unix的I/O模型解析網絡程式設計的本質是程式間通信2 通信的基礎是IO模型3 java.io 家族4 設計模式 - 裝飾器模式Socket也是一種資料源Unix中的Socket是什麼通過socket發送資料同步/異步/阻塞/非阻塞複用線程 -線程池

同步

面對面表白女生時為同步,持續性等待!

Java 網絡程式設計實戰(二) - Unix的I/O模型解析網絡程式設計的本質是程式間通信2 通信的基礎是IO模型3 java.io 家族4 設計模式 - 裝飾器模式Socket也是一種資料源Unix中的Socket是什麼通過socket發送資料同步/異步/阻塞/非阻塞複用線程 -線程池

A線程:

A要去做事情A1,A2, A3。

如果A1正在執行的情況下A2, A3都不能執行,這叫做同步,也叫阻塞。A2必須等A1執

行完畢之後才能執行。

異步

女孩子考慮考慮,下次告訴你

Java 網絡程式設計實戰(二) - Unix的I/O模型解析網絡程式設計的本質是程式間通信2 通信的基礎是IO模型3 java.io 家族4 設計模式 - 裝飾器模式Socket也是一種資料源Unix中的Socket是什麼通過socket發送資料同步/異步/阻塞/非阻塞複用線程 -線程池
Java 網絡程式設計實戰(二) - Unix的I/O模型解析網絡程式設計的本質是程式間通信2 通信的基礎是IO模型3 java.io 家族4 設計模式 - 裝飾器模式Socket也是一種資料源Unix中的Socket是什麼通過socket發送資料同步/異步/阻塞/非阻塞複用線程 -線程池

A1正在執行的情況下,A2和A3也可以執行。這叫做異步、非阻塞。

阻塞調用

表白後,茶不思飯不想啥都不幹就等待!

Java 網絡程式設計實戰(二) - Unix的I/O模型解析網絡程式設計的本質是程式間通信2 通信的基礎是IO模型3 java.io 家族4 設計模式 - 裝飾器模式Socket也是一種資料源Unix中的Socket是什麼通過socket發送資料同步/異步/阻塞/非阻塞複用線程 -線程池

非阻塞調用

  • 表白後,該幹嘛幹嘛
Java 網絡程式設計實戰(二) - Unix的I/O模型解析網絡程式設計的本質是程式間通信2 通信的基礎是IO模型3 java.io 家族4 設計模式 - 裝飾器模式Socket也是一種資料源Unix中的Socket是什麼通過socket發送資料同步/異步/阻塞/非阻塞複用線程 -線程池

等待結果前,調用方的狀态

同步阻塞

  • 一直等待,不做别的事
Java 網絡程式設計實戰(二) - Unix的I/O模型解析網絡程式設計的本質是程式間通信2 通信的基礎是IO模型3 java.io 家族4 設計模式 - 裝飾器模式Socket也是一種資料源Unix中的Socket是什麼通過socket發送資料同步/異步/阻塞/非阻塞複用線程 -線程池

同步非阻塞

等待時,還想着自己的bug沒解決呢!

Java 網絡程式設計實戰(二) - Unix的I/O模型解析網絡程式設計的本質是程式間通信2 通信的基礎是IO模型3 java.io 家族4 設計模式 - 裝飾器模式Socket也是一種資料源Unix中的Socket是什麼通過socket發送資料同步/異步/阻塞/非阻塞複用線程 -線程池

異步阻塞

表白後離開,等待手機消息,但茶不思飯不想

Java 網絡程式設計實戰(二) - Unix的I/O模型解析網絡程式設計的本質是程式間通信2 通信的基礎是IO模型3 java.io 家族4 設計模式 - 裝飾器模式Socket也是一種資料源Unix中的Socket是什麼通過socket發送資料同步/異步/阻塞/非阻塞複用線程 -線程池

異步非阻塞

  • 離開後,該幹嘛幹嘛
Java 網絡程式設計實戰(二) - Unix的I/O模型解析網絡程式設計的本質是程式間通信2 通信的基礎是IO模型3 java.io 家族4 設計模式 - 裝飾器模式Socket也是一種資料源Unix中的Socket是什麼通過socket發送資料同步/異步/阻塞/非阻塞複用線程 -線程池

複用線程 -線程池

Java 網絡程式設計實戰(二) - Unix的I/O模型解析網絡程式設計的本質是程式間通信2 通信的基礎是IO模型3 java.io 家族4 設計模式 - 裝飾器模式Socket也是一種資料源Unix中的Socket是什麼通過socket發送資料同步/異步/阻塞/非阻塞複用線程 -線程池
  • java提供的線程池
Java 網絡程式設計實戰(二) - Unix的I/O模型解析網絡程式設計的本質是程式間通信2 通信的基礎是IO模型3 java.io 家族4 設計模式 - 裝飾器模式Socket也是一種資料源Unix中的Socket是什麼通過socket發送資料同步/異步/阻塞/非阻塞複用線程 -線程池
  • java提供的建立線程池的方法
Java 網絡程式設計實戰(二) - Unix的I/O模型解析網絡程式設計的本質是程式間通信2 通信的基礎是IO模型3 java.io 家族4 設計模式 - 裝飾器模式Socket也是一種資料源Unix中的Socket是什麼通過socket發送資料同步/異步/阻塞/非阻塞複用線程 -線程池