2010-04-08 33 views
1

java中的序列化和同步有什麼區別?我需要一個解釋或教程。java中的序列化和同步有什麼區別?

+6

列出相似之處可能會使(更多)更短的列表...他們不是非常相關的主題 – 2010-04-08 10:38:44

+6

除了他們的名字的第一個和最後七個字母之外,它們在所有方面都不相同。 – 2010-04-08 10:43:48

回答

9

同步指的是多線程。同步的代碼塊一次只能由一個線程執行。

序列化是指將對象轉換爲比特流用於存儲或傳輸。序列化操作根據特定規則對數據進行編碼。這個比特流可以在稍後或在接收它的遠程系統上被反序列化。爲了使序列化工作,類定義必須匹配(即,您需要使用相同版本的類或保證兼容的類),並且該類必須實現接口Serializable

更多關於serialization

更多關於synchronization

+2

+1;只是幾個額外的評論。首先,序列化這個術語有時也用於處理請求*的順序*而不是同時處理。除此之外,我會說Java對象被序列化爲字節流而不是比特流。 AFAIK,輸出始終是字節對齊的。 – 2010-06-08 11:48:12

0

序列所花的對象,並將其傾倒到的東西是該程序的範圍之外(例如,字符串或XML文件)

同步是具有在不同的運行線程的概念相互同步,以便它們不會同時使用共享資源。

據我所知,這些術語的共同點很少的(除非你有一個關於如何上連載需要同一個對象的兩個線程同步問題)

0

同步是併發性問題,例如你如何協調對來自多個線程的對象的訪問。

這裏是一個箭頭表示訪問。

      s 
[thread1] ---------------> y 
          n [shared object] 
[thread2] ---------------> c 
          h 

序列化是將數據結構和對象轉換爲可以存儲/傳輸然後再轉換回數據結構和對象的位序列。

此處箭頭表示轉換。

  deserialization 
      <--------------- 
    [object]     [binary] 
      ---------------> 
      serialization 

當反序列化發生在另一個地方和/或時間時,這是最有用的。

0

同步確保一次只有一個線程正在執行,因此不會出現死鎖情況。

序列化是指存儲一個對象的狀態。例如,我們可以拍攝一個視頻遊戲。如果我們暫停遊戲並在稍後繼續遊戲,它將恢復遊戲。這意味着狀態和關卡已經存儲在這裏。

相關問題