java 初學多線程

來源:互聯網
上載者:User

標籤:構造   關係   class   時間   練習   多個   jvm   一個   out   

什麼是進程?

例如:

 

這些每個都是一個進程,每個進程都有好多功能,這些功能同時運行走的就是線程,多線程

一個進程會有多個線程或者一個線程,是一對多的關係

進程:一個程式進入記憶體就可以叫做進程

線程:線程是進程的一個執行單元(功能),可以多個線程一起執行

程式運行原理

java是搶佔式調度,就是cpu會隨機分配時間運行哪個線程時間長一點,執行的多一些。cpu會高速的在每個線程之間來回切換,但是某個時刻只能執行一個線程,

多線程並不能提高程式的運行速度,但是可以提高程式的運行效率,讓cpu的使用率更高

分時調度:cpu平均分配時間,每個線程的時間是一樣的

主線程

就是我們常用的main()方法,當JVM啟動後,必然有一個方法從mian方法開始,到結束。才能執行mian下面的別的方法,依次執行。

Treah類

構造方法

常用方法

寫一個新的類,然後繼承Thread類,聲明這是一個新的線程,將要執行的程式寫在新的類裡面,方法名run,在mian方法裡用start調用

 1 package com.oracle.Demo02; 2  3 public class Demo1 extends Thread { 4     //JVM去找OS開了2條路徑 5     //對於CPU來說就有了2條路徑,這2條路徑都會被CPU執行,CPU有自己選擇的權利,所以就有了隨機性, 6     //也可以理解為2個線程在搶奪CPU的資源(時間) 7     public void run(){ 8         for(int i=0;i<100;i++){ 9             System.out.println("這是建立的線程"+i);10         }11     }12 }
 1 package com.oracle.Demo02; 2  3 public class test { 4  5     public static void main(String[] args) { 6         Demo1 de = new Demo1(); 7         //開啟線程。start方法會在後台調用run方法 8         de.start(); 9         for(int i=0;i<100;i++){10             System.out.println("這是主線程"+i);11         }

練習:

給我建立三個線程,一個方法是列印1000以內的水仙花數,
一個方法是列印1000以內的所有偶數,一個方法是迴圈列印1000個數

 1 package com.oracle.Demo02; 2  3 public class Demo02 extends Thread { 4     public void run(){ 5         for(int i=1;i<=1000;i++){ 6             int a = i%10; 7             int b = (i/10)%10; 8             int c = i/100%10; 9             if((a*a*a+b*b*b+c*c*c)==i){10                 System.out.println("水仙花數"+i);11 12             }13         }14     }15 }
 1 package com.oracle.Demo02; 2  3 public class Demo03 extends Thread{ 4     public void run(){ 5         for(int i=1;i<=100;i++){ 6             if(i%2==0){ 7                 System.out.println("偶數"+i); 8             } 9         }10     }11 }
package com.oracle.Demo02;public class test {    public static void main(String[] args) {        Demo02 de = new Demo02();        de.start();   建立第一個線程        Demo03 dee = new Demo03();        dee.start();    建立第二個線程        for(int i =0;i<=1000;i++){    主線程            System.out.println(i);        }            }}

 

java 初學多線程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.