程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> socket編程與線程模型一

socket編程與線程模型一

編輯:關於.NET

這裡線程模型是指winsock相關的線程模型設計。

在本軟件的設計的過程中有些問題是涉及到winsock的問題,為了能夠很好的 設計線程模型,必須理解清楚socket的內部工作機制。為此,首先從外面開始分 析。

一、為什麼使用多線程

1、使用多線程是為了避免應用程序主界面在I/O操作中沒有反應,出現假死 機現象。

Socket是一種特殊的I/O,所以很可能會出現這種現象。例如發送數據,或者 連接服務器的時候。

2、為了提高cpu利用率(在多cpu環境)和改善應用程序的並發性能。

在多cpu環境,幾個線程可以同時在不同的cpu上執行,從而提高了應用程序 的效率。另外,應用程序有時候需要並發(包括單個cpu環境下的輪流執行)才 能使得應用程序的行為比較流暢和連貫。例如收報,發報,報文處理三個工作如 果交給一個線程完成,可能會造成報文處理的時候收報或者發報不能繼續的結果 。

二、多線程帶來的問題

因為socket是I/O,所以,多個線程操作同一個I/O將會引發復雜的同步和互 斥問題。如果處理不當,就會出現不可預知的結果。

線程切換和管理會造成計算機效率的降低;線程所需的數據結構也是內存開 銷。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved