共找到8條詞條名為同步的結果 展開
同步
計算機術語
同步是一種計算機術語,一般指的是在兩個或多個資料庫、文件、模塊、線程之間用來保持數據內容一致性的機制。
資料庫同步的含義就是讓兩個或多個資料庫內容保持一致,或者按需要部分保持一致。
資料庫同步有兩種實現方式。第一種是根據資料庫的日誌,將一個資料庫的修改應用到另一個資料庫。這種方式適合同一種資料庫,並且數據結構完全相同的情況。如果要把這種同步方式應用到不同類型的資料庫,或者資料庫中數據類型不同,都會遇到困難。第二種實現方式是分析兩個資料庫中內容,找出差異,將差異的部分記錄寫入對方資料庫中。這種方式對數據類型沒有嚴格要求,因為數據從一個資料庫調出,寫入另一資料庫之前,可以做適當的類型轉換。如果使用ODBC介面訪問資料庫,這種實現同步的方式還可以適用於各種異類資料庫之間的同步。
文件同步的含義就是讓兩個或多個文件夾里的文件保持一致,或者按需要部分保持一致。
需要同步的文件夾可以是同一台計算機上,也可以是在不同計算機上,甚至是異地的。如果要同步的文件夾在同一台計算機上,則屬於單機文件同步,如果要同步的文件夾在不同的計算機上,就是遠程文件同步了。同步處理時,掃描分析雙方文件夾中的文件,然後進行對比找出有修改或增加或缺少的文件,按需要進行文件傳送或刪除多餘文件,最終使文件夾內容保持一致,或者按需要部分保持一致。
在計算機網路中,“同步”的意思很廣泛,它沒有一個簡單的定義。在很多地方都用到“同步”的概念。例如在協議的定義中,協議的三個要素之一就是“同步”。在網路通信編程中常提到的“同步”,則主要指某函數的執行方式,即函數調用者需等待函數執行完成後才能進到下一步。在數據通信中的同步通信則是與非同步通信有很大的區別。
“非同步通信”是一種很常用的通信方式。非同步通信在發送字元時,所發送的字元之間的時間間隔可以是任意的。當然,接收端必須時刻做好接收的準備(如果接收端主機的電源都沒有加上,那麼發送端發送字元就沒有意義,因為接收端根本無法接收)。發送端可以在任意時刻開始發送字元,因此必須在每一個字元的開始和結束的地方加上標誌,即加上開始位和停止位,以便使接收端能夠正確地將每一個字元接收下來。非同步通信的好處是通信設備簡單、便宜,但傳輸效率較低(因為開始位和停止位的開銷所佔比例較大)。
非同步通信也可以是以幀作為發送的單位。接收端必須隨時做好接收幀的準備。這時,幀的首部必須設有一些特殊的比特組合,使得接收端能夠找出一幀的開始。這也稱為幀定界。幀定界還包含確定幀的結束位置。這有兩種方法。一種是在幀的尾部設有某種特殊的比特組合來標誌幀的結束。或者在幀首部中設有幀長度的欄位。需要注意的是,在非同步發送幀時,並不是說發送端對幀中的每一個字元都必須加上開始位和停止位后再發送出去,而是說,發送端可以在任意時間發送一個幀,而幀與幀之間的時間間隔也可以是任意的。在一幀中的所有比特是連續發送的。發送端不需要在發送一幀之前和接收端進行協調(不需要先進行比特同步)。
“同步通信”的通信雙方必須先建立同步,即雙方的時鐘要調整到同一個頻率。收發雙方不停地發送和接收連續的同步比特流。但這時還有兩種不同的同步方式。一種是使用全網同步,用一個非常精確的主時鐘對全網所有結點上的時鐘進行同步。另一種是使用准同步,各結點的時鐘之間允許有微小的誤差,然後採用其他措施實現同步傳輸。
線程同步解決的是在一個程序中多個線程之間的關係的協調,對競爭資源的訪問的一種處理方式,避免一個線程長期佔用一個資源的目的。有synchronized,lock ,volatile,消息傳遞機制等處理方式達到線程同步。比如在java中使用synchronized關鍵字修飾一個方法,用這個關鍵字修飾的方法稱為“同步方法”,語法:訪問控制符 +synchronized + 返回值類型(參數列表) +方法體;具有這個關鍵字的方法有一個重要的特性,就是該方法每次只能有一個線程執行這個方法;後來的線程處於掛起狀態,直到前面的調用該方法的線程退出該方法,才能調用調用該方法體執行。