程序同步與非同步
首先我們要清楚程序的同步與非同步說的是程序間的執行關係,而不是程序的執行的執行狀態(阻塞與非阻塞)。
我們所謂的程序同步是說在某些地方,多個併發程序需要相互等待或交換資訊而產生的制約關係,併發程序之間不是相互排斥臨界資源,而是相互依賴的關係。確切說,同步關係就是前一個程序的輸出作為後一個程序的輸入;當第一個程序沒有輸出時,第二個程序必須等待。
而非同步是相對於同步而言,同步是順序執行程序,執行完一個程序再執行下一個程序,需要程序之間等待、協調執行;非同步是程序之間彼此獨立,在等待其他程序的執行時,本程序繼續做自己的事,不需要等待其他程序完成後再工作。
舉個泡茶的例子來說明,假設說我們燒水需要10分鐘,洗茶具需要三分鐘,準備茶葉需要兩分鐘,泡茶需要2分鐘,那麼我們都知道最好的解決辦法是在燒開水的過程中清洗茶具和準備茶葉,這樣我們需要12分鐘就能喝到茶,這個事件中燒水,洗茶具和準備茶葉就是非同步進行,不需要互相等待資源,但是泡茶與燒水,洗茶具和準備茶葉就是程序同步,需要這三個時間都完成後才能泡茶。
相關推薦
程序同步與非同步
首先我們要清楚程序的同步與非同步說的是程序間的執行關係,而不是程序的執行的執行狀態(阻塞與非阻塞)。 我們所謂的程序同步是說在某些地方,多個併發程序需要相互等待或交換資訊而產生的制約關係,併發程序之間不是相互排斥臨界資源,而是相互依賴的關係。確切說,同步關係就是前一個程序的輸出作為後一個程序的輸
Java程序-同步與非同步
1、synchronized修飾程式碼塊1、兩個併發的執行緒訪問同一個物件中的synchronized(this)同步程式碼塊時,同一時間內只有一個執行緒執行,另外一個執行緒需要等到當前執行緒結束之後才能執行。package MapTest; public class Th
CIL鎖,GIL與執行緒池的區別,程序池和執行緒池,同步與非同步
一.GIL鎖 什麼是GIL? 全域性直譯器鎖,是加在直譯器上的互斥鎖 GC是python自帶的記憶體管理機制,GC的工作原理:python中的記憶體管理使用的是應用計數,每個數會被加上一個整型的計數器,表示這個資料被引用的次數,當這個整數變為0時則表示該資料已經沒有人使用,成為了垃圾資料,當記憶體佔用達到
socket阻塞與非阻塞 同步與非同步 I/O模型
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
socket阻塞與非阻塞,同步與非同步、I/O模型(轉載只為查閱方便,若有侵權,立刪)
socket阻塞與非阻塞,同步與非同步 作者:huangguisu 1. 概念理解 在進行網路程式設計時,我們常常見到同步(Sync)/非同步(Async),阻塞(Block)/非阻塞(Unbl
經典程序同步與互斥習題總結
基礎知識導引 臨界資源 在作業系統中,程序是佔有資源的最小單位(執行緒可以訪問其所在程序內的所有資源,但執行緒本身並不佔有資源或僅僅佔有一點必須資源)。但對於某些資源來說,其在同一時間只能被一個程序所佔用。這些一次只能被一個程序所佔用的資源就是所謂的臨界
程序同步與互斥
1.概念 程序同步概念:亦稱直接制約關係,它是指為完成某種任務而建立的兩個或多個程序,這些程序因為需要在某些位置上協調它們的工作次序而產生的制約關係。程序間的直接制約關係就是源於它們之間的相互合作。 程序互斥概念:對臨界資源的訪問,需要互斥地進行。即同一個時間段內只能允許一個程序訪問該資源。 程序互斥的
有關程序同步與互斥的經典問題
1生產者消費者問題 1.1使用二元訊號量解決無限緩衝區的生產者消費者問題 //使用二元訊號量解決無限緩衝區的生產者消費者問題 int count = 0; //count為緩衝區中的資料項個數 BinSem s = 1, delay = 0; //s為二元訊號量,控制生產者和消費
java基礎 - 同步與非同步的區別
同步:傳送一個請求,等待返回,然後再發送下一個請求 非同步:傳送一個請求,不等待返回,隨時可以再發送下一個請求 同步可以避免出現死鎖,讀髒資料的發生,一般共享某一資源的時候用,如果每個人都有修改許可權,同時修改一個檔案,有可能使一個人讀取另一個人已經刪除的內容,就會出錯,同步就會按順
圖解阻塞與非阻塞&同步與非同步
一、阻塞I/O模型 二、非阻塞I/O模型 三、非同步I/O模型 四、同步I/O模型  
Linux下阻塞與非阻塞,同步與非同步的關係及IO模型
一、阻塞與非阻塞,同步與非同步的關係 1、同步 同步,就是在發出一個功能呼叫時,在沒有得到結果之前,該呼叫就不返回。也就是說事情必須一件一件地做,等前一件做完了才能做下一件事。 2、非同步 非同步,就是在發出一個功能呼叫時,呼叫者不會立刻得到結果。實際處理這個呼叫的部
阻塞與非阻塞,同步與非同步
Java的IO有三種:IO、NIO、AIO 第一種是Java剛開始就出現的IO即BIO(同步阻塞IO),我們一般常說的IO就是這種IO,這種IO相對來說比較簡單,基於流模型,提供一種IO操作。互動方式是同步、阻塞,呼叫的順序是線性順序,這種IO有一個好處就是,程式碼簡單,但是缺點就是IO的效率較
Netty學習之路(一)- 同步與非同步IO
本篇部落格主要是講一些基礎,記錄我的學習過程,同時嘗試養成寫部落格的習慣。內容基本來自Netty權威指南加上一丟丟的個人理解。。。。 I/O基礎入門 在jdk1.4以前,java對i/o的支援並不完善,開發人員在開發高效能i/o時會遇到巨大的挑戰與困難,主要問題如下: 沒
js的同步與非同步
JavaScript語言的一大特點就是單執行緒,也就是說,同一個時間只能做一件事。那麼,為什麼JavaScript不能有多個執行緒呢?這樣能提高效率啊。 JavaScript的單執行緒,與它的用途有關。作為瀏覽器指令碼語言,JavaScript的主要用途是與使用者互動,以及操作DOM。這決定了它只能是單
[Xcode10 實際操作]八、網路與多執行緒-(23)多執行緒的同步與非同步的區別
本文將演示執行緒的同步與非同步的區別。 在專案導航區,開啟檢視控制器的程式碼檔案【ViewController.swift】 非同步執行緒的執行,是沒有按照順序執行的。 1 import UIKit 2 3 class ViewController: UIViewController
JS同步與非同步;
JS的同步與非同步 同步:代買從上往下的執行 非同步:每個模組各執行各的,同時執行,互不干擾 四個非同步事件:(1)定時器(2)ajax(3)時間的繫結(4)回撥函式 現在用定時器來說一說setTimeOut事件的同步和非同步 for (var i = 0; i < 5; i++) { set
同步與非同步,阻塞與非阻塞
老張愛喝茶,廢話不說,煮開水。 出場人物:老張,水壺兩把(普通水壺,簡稱水壺;會響的水壺,簡稱響水壺)。 1 老張把水壺放到火上,立等水開。(同步阻塞) 老張覺得自己有點傻 2 老張把水壺放到火上,去客廳看電視,時不時去廚房看看水開沒有。(同步非阻塞) 老張還是覺得自己有點傻,於是變高端了,
聊聊阻塞與非阻塞、同步與非同步、I/O模型
1. 概念理解 在進行網路程式設計時,我們常常見到同步(Sync)/非同步(Async),阻塞(Block)/非阻塞(Unblock)四種呼叫方式: 同步/非同步主要針對C端: 同步: 所謂同步,就是在c端發出一個功能呼叫時,在沒有得到結果之前,該呼叫就不返回。也就是必須一件一件事做,等前一件做完了才能做
同步與非同步、阻塞與非阻塞的理解
本質都是為了提高效率為目的 我做一件事情,請求外部協助。外部還沒響應結果,我要怎麼辦,一種辦法是,我一直等著對方給我答覆結果。另外一種是,對方主動通知我。這是同步和非同步的區別。 比如水壺,有沒有主動報警(當水開了時)的機制。 而我那個時候在幹嘛,我可以去幹別的工作,這種就是阻塞
ExtJs 同步與非同步請求
同步方式請求:(關鍵是要設定false這個引數) var conn = Ext.lib.Ajax.getConnectionObject().conn; conn.open("GET", 'y