緩存
-
將數據從數據庫/文件取出來放在服務器的內存中,這樣後面的用戶來獲取數據,不用查詢數據庫,直接從內存(緩存)中獲取數據,提高了訪問的速度,節省了時間,也減輕了數據庫的壓力。
-
緩存空間換時間的技術。
-
緩存是網站優化的第一個手段。
-
什麼樣的內容適合放在緩存中?
-
經常被查詢,但是不是經常改動的數據。
-
分佈式緩存:Memcache Redis OA
-
Cache.與Session的區別。
-
每個用戶都有自己單獨的Session對象。
-
但是放在Cache中的數據是大家共享的。
錯誤頁
全局文件
委託
-
什麼是委託?(安全的函數指針)
-
通俗:就是一個能存放符合某種格式(方法簽名)的方法的指針的清單
-
委託創建方式
-
準備一個方法:string HelloU(string uName){//方法代碼}
-
聲 明 委 託:delegate 返回值類型 委託類型名(參數)
-
例子:delegate string DGSayHi(string uName);
-
-
創建委託對象:DGSayHi dgSay=new DGSayHi(HelloU);
-
或者:DGSayHi dgSay=HelloU;//new DGSayHi(HelloU);
-
追加方法:dgSay+=HelloU2;//Delegate.Combine(,)
-
刪除方法:dgSay-=HelloU3;
-
進程
-
進程概念:是Windows系統中的一個基本概念,它包含着一個運行程序所需要的資源。進程之間是相對獨立的,一個進程無法直接訪問另 一個進程的數據(除非利用分佈式計算方式),一個進程運行的失敗也不會影響其他進程的運行,Windows系統就是利用進程把工作劃分爲多個獨立的區域 的。進程可以理解爲一個程序的基本邊界。
-
Process.Start("notepad.exe", "a.txt");
線程
-
線程概念:是Windows任務調度的最小單位。線程是程序中的一個執行流。
-
解決問題:進程是一個資源的擁有者,因而在進程的創建、撤銷、和切換的過程中,系統必須爲之付出較大的時空開銷,限制了併發程度的進一步提高。
-
所有的代碼都必須執行在線程。有線程纔能有代碼執行。
-
後臺線程
-
ThreadStart threadStart = new ThreadStart(StartCaul);
-
Thread myThread = new Thread(threadStart);
-
//myThread.Priority = ThreadPriority.Normal;//建議操作系統將創建的線程優先級設置爲最高。
-
// myThread.Name = "";
-
// myThread.Abort();
-
myThread.IsBackground = true;//設置爲後臺線程。
-
myThread.Start();
線程應用場景:
-
(1):希望獲得更多操作系統資源儘快處理我們的 業務,縮短處理的時間
-
(2):如果一個非常複雜的操作。需要佔用非常長的時間。而WinFrom又不允許阻塞UI線程
什麼時候用線程池?什麼時候用手動創建線程?
-
1、能用線程池的就用線程池
-
2、我們想手動關閉線程的話那麼必須手動創建了。 Abort() Join()
-
3、我們需要對線程池的線程的優先級做設置的情景下,只能使用手動創建線程。
-
4、如果執行的線程執行時間特別長。建議手動創建線程。
Socket
-
socket用於描述IP地址和端口,是一個通信鏈的句柄。(其實就是兩個程序通信用的。)
-
在Internet上有很多這樣的主機,這些主機一般運行了多個服務軟件,同時提供幾種服務。每種服務都打開一個Socket,並綁定到一個端口上,不同的端口對應於不同的服務(應用程序)。
-
例如:http 使用80端口 ftp使用21端口 smtp 25端口
-
有兩種類型:
-
流式Socket(STREAM):
是一種面向連接的Socket,針對於面向連接的TCP服務應用,安全,但是效率低; -
數據報式Socket(DATAGRAM):
是一種無連接的Socket,對應於無連接的UDP服務應用.不安全(丟失,順序混亂,在接收端要分析重排及要求重發),但效率高.
-