java线程——什么是线程?
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                java线程——什么是线程?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                【0】README
0.1) 本文描述轉自 core java volume 1, 源代碼為原創,旨在理解 java線程——什么是線程? 的相關知識; 
 0.2)線程定義:一個程序可以執行多個任務,每一個任務成為線程; 
 0.3)進程和線程的區別: 本質的區別是, 每個進程擁有自己的一整套變量,而線程則共享數據;
【1】 什么是線程?
1.1)使用線程給其他任務提供機會
- 1.1.1)下面是在一個單獨的線程中執行一個任務的簡單過程:
- step1)將任務代碼移到實現了 Runnable接口的類的run方法中:
- step2)創建一個類對象:
- step3)由 Runnable創建一個 Thread對象:(創建一個新線程)
- step4)啟動線程:
Warning)
- W1) 不要調用 Thread類或 Runnable對象的run方法。 直接調用run方法, 只會執行同一個線程的任務, 而不會啟動新線程;
- W2)應該調用 Thread.start 方法, 這個方法將創建一個執行run方法的 新線程;
- source code: https://github.com/pacosonTang/core-java-volume/blob/master/chapter14/ThreadTest.java) 
 
 
1.2)看個荔枝:
- 1.2.1)多線程共享一個變量 
 
- Conclusion)實現Runnable接口比繼承Thread類所具有的優勢: (干貨) - C1):適合多個相同的程序代碼的線程去處理同一個資源;
- C2):可以避免java中的單繼承的限制;
- C3):增加程序的健壯性,代碼可以被多個線程共享,代碼和數據獨立;
 
Warning)
- W1) main方法其實也是一個線程。在java中所有的線程都是同時啟動的,至于什么時候,哪個先執行,完全看誰先得到CPU的資源;
- W2)在java中,每次程序運行至少啟動2個線程。一個是main線程,一個是垃圾收集線程。因為每當使用java命令執行一個類的時候,實際上都會啟動一個JVM,每一個jVM 實際就是在操作系統中啟動了一個進程;
1.3)判斷線程是否啟動(主線程也有可能在子線程結束之前結束。并且子線程不受影響,不會因為主線程的結束而結束) 
 
總結
以上是生活随笔為你收集整理的java线程——什么是线程?的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: java线程——阻塞队列
- 下一篇: 苹果原装耳机的真假如何辨别
