筆試總結(1)

並行與併發

併發是指兩個併發的實質是一個物理CPU(也可以多個物理CPU) 在若干道程序之間多路複用,併發性是對有限物理資源強制行使多用戶共享以提高效率。或多個事件在同一時間間隔發生。所有的併發處理都有排隊等候,喚醒,執行至少三個這樣的步驟.所以併發肯定是宏觀概念,在微觀上他們都是序列被處理的,只不過資源不會在某一個上被阻塞(一般是通過時間片輪轉),所以在宏觀上看多個幾乎同時到達的請求同時在被處理。如果是同一時刻到達的請求也會根據優先級的不同,而先後進入隊列排隊等候執行。

並行性指兩個或兩個以上事件或活動在同一時刻發生。在多道程序環境下,並行性使多個程序同一時刻可在不同CPU上同時執行。並行是指在兩個或多個事件在同一時刻發生。

併發與並行是兩個既相似而又不相同的概念:併發性,又稱共行性,是指能處理多個同時性活動的能力;並行是指同時發生的兩個併發事件,具有併發的含義,而併發則不一定並行,也亦是說併發事件之間不一定要同一時刻發生。

打個比方。併發,就像一個人(cpu)喂2個孩子(程序),輪換着每人喂一口,表面上兩個孩子都在吃飯。並行,就是2個人喂2個孩子,兩個孩子也同時在吃飯。

TCP協議:有序,可靠,容錯

傳統意義上的C/C++語言,類型推斷是在編譯階段完成。

數據庫存儲和索引:

MYSQL、PGSQL、SQL-SERVER-ORACLE都離不開B-TREE索引,HASH索引,B-TREE可以做範圍查找,基於葉子節點的查找適合於WHERE語句。MYSQL對WHERE A=XXXX特別做了優化,使用了HASH索引,HASH索引則適合於隨機查找,無法或需要做SCAN時需要其他的方式。

數據庫事務需要滿足四個特性,ACID,即原子性(Atomic),一致性(Consistency),隔離性(Isolation),持久性(Durability)。

序列化和反序列化

我們可能經常會聽到,其實通俗一點的解釋,序列化就是把一個對象保存到一個文件或數據庫字段中去,反序列化就是在適當的時候把這個文件再轉化成原來的對象使用。

 當兩個進程在進行遠程通信時,彼此可以發送各種類型的數據。無論是何種類型的數據,都會以二進制序列的形式在網絡上傳送。發送方需要把這個對象轉換爲字節序列,才能在網絡上傳送;接收方則需要把字節序列再恢復爲對象。把對象轉換爲字節序列的過程稱爲對象的序列化。把字節序列恢復爲對象的過程稱爲對象的反序列化。

序列化:

  1.得到一個存儲對象的類型

  2.創建一個寫入文件流

  3.定義要序列化的類型

  4.調用序列化方法

反序列化:

  1.定義一個裝載對象的類型

  2.創建一個讀出文件流

  3.定義要反序列化的類型

  4.調用反序列化方法





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章