同步就是在一個主線程裏,你要作三件事情,A作完了作B,B完了再作C,是順序執行的; 多線程
異步就是在一個主線程裏,你開了三個線程來分別處理ABC這三件事,這三個子線程在代碼調用的時候可能你是先調A再調B和C,可是在執行子線程的時候即便A線程沒執行完,線程B和C也會往下執行,讓咱們看起來好像ABC三個線程是互不干擾的分別在執行。 異步
不少時候咱們會用異步多線程來處理同一業務裏的大量數據,比如有一千個訂單要處理,若是你用一個線程順序執行,你就要循環這批訂單,一個個處理,消耗很是多時間;可是用多線程你就能夠開十幾二十個線程異步處理,讓效率提升不少。 線程
另外,異步雖然咱們看起來是不少個線程同時在跑,其實對同一CPU來講它在同一時間仍是隻能處理一個線程的,只是在一個線程裏遇到有IO操做等等須要CPU等待的時候,就會切換到另外一個線程去執行,增強了使CPU使用率,因此並非何時都適合使用多線程的。同步