同步、異步:
指的是能否開啟新的線程。同步不能開啟新的線程,異步可以。
串行、並行:
指的是任務的執行方式。串行是指多個任務時,各個任務按順序執行,完成一個之后才能進行下一個。並行指的是多個任務可以同時執行。異步是多個任務並行的前提條件。
並發和並行其實是異步線程實現的兩種形式。並行其實是真正的異步,多核CUP可以同時開啟多條線程供多個任務同時執行,互不干擾。但是並發就不一樣了,是一個偽異步。在單核CUP中只能有一條線程,但是又想執行多個任務。這個時候,只能在一條線程上不停的切換任務,比如任務A執行了20%,任務A停下里,線程讓給任務B,任務執行了30%停下,再讓任務A執行。這樣我們用的時候,由於CUP處理速度快,你看起來好像是同時執行,其實不是的,同一時間只會執行單個任務。但是當並發是在多個cpu的情況下,那么並行和並發就沒多大的區別了。但是在單個cpu的情況下的話,那么就只能並發而不能並行了。