程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> Java多線程概述,java多線程

Java多線程概述,java多線程

編輯:JAVA綜合教程

Java多線程概述,java多線程




/*多線程
1.首先說進程,進程---就是正在進行的程序
    每一個進程都有一個執行程序。該順序是一個執行路徑,或者叫一個控制單元

2.線程:就是進程中的一個獨立的進程單元
        線程在控制著進程的執行
        一個進程中至少有一個進程

        Java VM(虛擬機) 啟動的時候會有一個進程  java.exe
        
        該進程中至少有一個線程負責java程序的執行
        而且這個線程運行的代碼存在於main方法中
        該線程稱之為主線程
        
        拓展:其實更細節說明JVM,jvm啟動都不止一個線程,還有負責垃圾回收機制的線程

3.如何在自定義的代碼中自定義一個線程呢?
通過對api的查找,java已經提供了對線程這類事物的描述,就Thread類

創建線程的第一種方式,繼承Thread類。

具體步驟:
1.定義類繼承Thread。
2.復寫Thread類中的run方法。
  目的:將自定義代碼存儲在run方法,讓線程運行
3.調用線程的start方法
該方法有兩個作用:1.啟動線程  2.調用run方法

*/
/*
常識了解
1.CPU在無時不刻地切換,實際切換的是進程中的線程
2.速度很快,快到感覺不到
3.發現運行結果每一次都不同。因為每個線程都在獲取cpu的執行權,cpu執行到誰,誰就運行。
4.明確一點,在某一時刻,只能有一個程序在執行(多核除外)
5.cpu在做著快速的切換,已達到看上去是同時運行的效果
6.我們可以形象把多線程的運行形容為在互相搶奪cpu的執行權,體現了多線程的特性:隨機性(誰搶到誰執行,執行多長時間,cpu說了算)
*/


/*為什麼要覆蓋run方法呢?
Thread用於描述線程
該類就定義了一個功能,用於存儲線程要運行的代碼。該存儲功能就是run方法

也就是說Thread類中的run方法,用於存儲線程要運行的代碼

*/

class Demo extends Thread
{
    public void run()
    {
        for(int i=0;i<60;i++)
        {
            System.out.println("Demo run"+i);
        }
    }
}

class ThreadDemo
{
    public static void main(String args[])   /*主線程*/
    {
        Demo d=new Demo(); /*創建一個對象,就是新建一個線程*/  /*主線程走到這,就有一個新的控制單元被創建*/
        d.start();            /*開啟線程,並執行該線程的run方法。d.run()僅僅是對象調用了方法,而線程創建了,並沒有運行*/
        for(int i=0;i<60;i++)
        {
            System.out.println("aaa"+i);
        }
    }
}





















  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved