建立你的第一個java多線程程序:html
public class Creat100Threads { /** * 建立一百個線程 * @param args */ public static void main(String[] args) throws InterruptedException { for(int i=0;i<100;i++){ new Thread(new Runnable() { public void run() { try { Thread.sleep(10000); } catch (InterruptedException e) { e.printStackTrace(); } } }).start(); } } }
運行代碼後 多了100個線程 能夠看到 程序確實實現了線程。java
多線程的概念:若是一個程序容許兩個或以上的線程,那麼它就是多線程程序。多線程市值在單個進程中運行多個線程。程序員
比喻你和室友同住一間房web
多線程實際例子:搶火車票
若是各個任務相互獨立 互不影響 則不須要多線程。
但絕大多數場景不一樣的任務 是相互耦合影響的,這時候就須要多線程。編程
如上圖 在EVENT調用後 有一段等待時間 電腦是不會作其餘事情的 直到結果返回前,此時電腦資源被白白的耗費着。安全
異步就不一樣了在發送一個請求後在服務器響應前 電腦又去處理其餘請求了。 就至關於你燒白開水 同步的話你就守在水壺面前什麼也不幹 直到水壺燒開 開關跳掉 但我相信平時你坑定不會這麼作 更多的是異步 燒開水時你去幹別的事等 燒開 等電源跳掉 你聽到了 再去取。
服務器
同步:同步異步這裏指的是被調用者(也就是服務器)的行爲,而不是請求方的行爲。在沒有獲得結果這錢,服務端就不返回任何結果。
異步:調用在發出以後,服務端馬上返回,告訴調用方」我收到你的請求了,我會處理的「。
再打個比方 你去借書 問老闆有沒有這本書老闆說 我幫你找找 而後過了一小時你就去問老闆 書有沒有找到 這時同步的一種思想 與此相對的是 當你去問老闆的時候老闆說 我先幫你找找 你留個電話找到了我再打電話給你這就至關於異步 回調了你的電話。網絡