真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java中線程實現(xiàn)代碼,java線程例子

java中線程編程代碼怎么寫啊

線程用到Thread或者Runnable接口(Thread也操作了Runnable接口)

創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站設(shè)計、網(wǎng)站制作與策劃設(shè)計,當(dāng)陽網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十多年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:當(dāng)陽等地區(qū)。當(dāng)陽做網(wǎng)站價格咨詢:18982081108

繼承了Thread類后需要重載其run方法,在方法里寫你需要完成的事情,開始線程是調(diào)用其start方法。

操作Runnable接口必須實現(xiàn)其run方法,在方法里寫你需要完成的事情,Runnable接口沒有start方法,所以啟動線程還是需要依靠Thread類 new Thread(Runnable runnable).start();

一般項目中多是操作接口,因為類只能單繼承,接口可以操作多個。

java多線程有幾種實現(xiàn)方法

繼承Thread類來實現(xiàn)多線程:

當(dāng)我們自定義的類繼承Thread類后,該類就為一個線程類,該類為一個獨立的執(zhí)行單元,線程代碼必須編寫在run()方法中,run方法是由Thread類定義,我們自己寫的線程類必須重寫run方法。

run方法中定義的代碼為線程代碼,但run方法不能直接調(diào)用,如果直接調(diào)用并沒有開啟新的線程而是將run方法交給調(diào)用的線程執(zhí)行

要開啟新的線程需要調(diào)用Thread類的start()方法,該方法自動開啟一個新的線程并自動執(zhí)行run方法中的內(nèi)容

? ? ?

請點擊輸入圖片描述

結(jié)果: ? ? ? ? ? ?

? ? ?

請點擊輸入圖片描述

*java多線程的啟動順序不一定是線程執(zhí)行的順序,各個線程之間是搶占CPU資源執(zhí)行的,所有有可能出現(xiàn)與啟動順序不一致的情況。

CPU的調(diào)用策略:

如何使用CPU資源是由操作系統(tǒng)來決定的,但操作系統(tǒng)只能決定CPU的使用策略不能控制實際獲得CPU執(zhí)行權(quán)的程序。

線程執(zhí)行有兩種方式:

1.搶占式:

目前PC機中使用最多的一種方式,線程搶占CPU的執(zhí)行權(quán),當(dāng)一個線程搶到CPU的資源后并不是一直執(zhí)行到此線程執(zhí)行結(jié)束,而是執(zhí)行一個時間片后讓出CPU資源,此時同其他線程再次搶占CPU資源獲得執(zhí)行權(quán)。

2.輪循式;

每個線程執(zhí)行固定的時間片后讓出CPU資源,以此循環(huán)執(zhí)行每個線程執(zhí)行相同的時間片后讓出CPU資源交給下一個線程執(zhí)行。

java 如何實現(xiàn)多線程

java中多線程的實現(xiàn)方式有兩種,一種是繼承java.lang.Thread類,另一種是實現(xiàn)java.lang.Runnable接口。下面是兩種方式的簡單代碼。繼承Thread類方式:import java.lang.Thread; //用集成Thread類方式實現(xiàn)多線程。 public class Test{ public static void main(String arg[]){ T t1=new T(); T t2=new T(); //更改新線程名稱 t1.setName("t1"); t2.setName("t2"); //啟動線程 t1.start(); t2.start(); } } class T extends Thread{ //重寫run()方法 public void run(){ System.out.println(this.getName()); } }輸出結(jié)果為:t1t2實現(xiàn)Runnable接口方式:在使用Runnable接口時需要建立一個Thread實例。因此,無論是通過Thread類還是Runnable接口建立線程,都必須建立Thread類或它的子類的實例。import java.lang.*; //用實現(xiàn)Runnable接口的方式實現(xiàn)多線程。 public class Test{ public static void main(String arg[]){ T t1=new T(); T t2=new T(); //一定要實例化Thread對象,將實現(xiàn)Runnable接口的對象作為參數(shù)傳入。 Thread th1=new Thread(t1,"t1"); Thread th2=new Thread(t2,"t2"); //啟動線程 th1.start(); th2.start(); } } class T implements Runnable{ //重寫run()方法 public void run(){ System.out.println(Thread.currentThread().getName()); } }輸出結(jié)果為:t1t2public void run()方法是JAVA中線程的執(zhí)行體方法,所有線程的操作都是從run方法開始,有點類似于main()方法,即主線程。

java線程的經(jīng)典代碼

package threadgroup;

class ThreadDemo3 extends Thread {

private String name;

private int delay;

public ThreadDemo3(String sname, int i_delay) {

name = sname;

delay = i_delay;

}

public void run() {

try {

sleep(delay);

} catch (InterruptedException e) {

}

System.out.println("多線程測試!\n" + name + "\n" + delay);

}

}

public class testMyThread {

public static void main(String[] args) {

ThreadDemo3 th1,th2,th3;

th1 = new ThreadDemo3("線程1", (int) (Math.random() * 900));

th2 = new ThreadDemo3("線程2", (int) (Math.random() * 900));

th3 = new ThreadDemo3("線程3", (int) (Math.random() * 900));

th1.start();

th2.start();

th3.start();

}

}

package threadgroup;

public class threadDemo {

public static void main(String[] args) {

Thread t = Thread.currentThread();

t.setName("你好嗎?");

System.out.println("正在進行的Thread是:" + t);

try {

for (int i = 0; i 5; i++) {

System.out.println("我不叫穆繼超" + i);

Thread.sleep(3000);

}

} catch (Exception e) {

// TODO: handle exception

System.out.println("Thread has wrong" + e.getMessage());

}

}

}

package threadgroup;

public class threadDemo2 implements Runnable {

public threadDemo2() {

Thread t1 = Thread.currentThread();

t1.setName("第一個主進程");

System.out.println("正在運行" + t1);

Thread t2 = new Thread(this, "");

System.out.println("在創(chuàng)建一個進程");

t2.start();

try {

System.out.println("使他進入第一個睡眠狀態(tài)");

Thread.sleep(2000);

} catch (InterruptedException e) {

System.out.println("Thread has wrong" + e.getMessage());

}

System.out.println("退出第一個進程");

}

public void run() {

try {

for (int i = 0; i 5; i++) {

System.out.println("進程" + i);

Thread.sleep(3000);

}

} catch (InterruptedException e) {

// TODO: handle exception

System.out.println("Thread has wrong" + e.getMessage());

}

System.out.println("退出第二個進程");

}

public static void main(String[] args) {

new threadDemo2();

}

}

如何在Java中實現(xiàn)線程

class MyJoinThread extends Thread

{

public MyJoinThread()

{

super();

}

public MyJoinThread(String name)

{

super(name);

}

public void run()

{

for(int i=0;i10;i++)

{

System.out.println(super.getName()+":"+i);

}

}

}

public class JoinTest

{

public static void main(String[] args)

{

MyJoinThread thread=new MyJoinThread("第1個線程");

thread.start();

for(int i=0;i10;i++)

{

System.out.println(Thread.currentThread().getName()+":"+i);

if(i==5)

{

try

{

thread.join();

}

catch (InterruptedException e)

{

System.out.println("線程被中斷");

}

}

}

}

}


網(wǎng)站題目:java中線程實現(xiàn)代碼,java線程例子
分享路徑:http://weahome.cn/article/dsegegi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部