1. 程式人生 > >java -- 多執行緒的兩種建立方法

java -- 多執行緒的兩種建立方法

什麼是程序? 什麼是執行緒?

個人感覺比較好理解

怎麼建立多執行緒?

建立多執行緒有兩種方式: 1, 繼承 Thread 類。   

    2, 實現 Runnable 介面

先來看看第一種方法: 繼承 Thread 類。

步驟:

1, 定義類繼承 Thread 類。

2, 在子類中複寫 Thread 中的 run()方法; 

3, 建立子類物件, 呼叫 start() 方法。

具體看程式碼

class ThreadTest_3
{
	public static void main(String[] args) 
	{
		ThreadDemo td = new ThreadDemo();
		td.start();

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

第二種方法: 實現 Runnable 介面。

步驟:

1,定義類實現 Runnable 介面, 

2, 覆蓋 Runnable 介面中的 run()方法。

3, 建立 實現 Runnable 介面的 子類的物件。

4, 通過 Thread 類建立物件, 並且將 根據 Runable 介面建立的子類物件作為實際引數傳給 Thread 類的的建構函式。

5, 通過 Thread 類的物件呼叫 start() 方法並呼叫 Runnable 子類的run()方法。

具體看程式碼

class ThreadTest_4
{
	public static void main(String[] args) 
	{

		RunnableDemo rd = new RunnableDemo();
		
		Thread t = new Thread(rd);
		t.start();

		for (int i = 0; i < 60; i++)
		{
			System.out.println("嘿嘿嘿嘿---"+i);
		}
	
	}
}
class RunnableDemo implements Runnable//extends Thread
{
	public void run()
	{
		for (int i = 0; i < 60; i++)
		{
			System.out.println("哈哈---"+i);
		}
	}
}

一般推薦使用第二種建立方式, 其實 Thread 類也實現了 Runnable 介面。


兩者的區別主要是: 繼承 與 實現的區別。 // java不允許多繼承, 但是可以多實現。

相關推薦

Java執行3實現方法

Java中的多執行緒有三種實現方式:1.繼承Thread類,重寫run方法。Thread本質上也是一個實現了Runnable的例項,他代表一個執行緒的例項,並且啟動執行緒的唯一方法就是通過Thread類的start方法。2.實現Runnable介面,並實現該介面的run()

Java執行賣票

public class MyThread1 extends Thread{ private int ticket=10; public void run() { for(int i=0;i

Java 執行 join和interrupt 方法

簡述: 使用Java多執行緒中join和interrupt函式 《Java程式設計思想》 P669 ~ P670 一個執行緒可以再其他執行緒上呼叫join()方法,其效果是等待一段時間直到第二個執行緒結束才繼續執行。 如果某個執行緒在另一個執行緒t上呼叫t.join(), 此

java 執行synchronized鎖同步方法,同步程式碼塊

執行緒安全問題 同步和非同步 我們知道多個執行緒共享堆記憶體,當兩個或者多個執行緒呼叫同一個物件的方法操作物件成員時,因為cpu輪流執行執行緒,執行緒A剛開始操作物件方法,修改了資料,輪到執行緒B執行,執行緒B也操作物件方法,修改資料,可能又輪到執行緒A操作物件方法,接著上次執行緒A的剩餘部

java執行:2 建立執行

如何建立一個多執行緒: Java提供了java.lang.Thread類,這就是執行緒的定義類,包含了:執行緒的優先順序,執行緒id、執行緒狀態等執行緒的基本資訊。 通過Thread類的說明,可以知道建立執行緒的兩種方式:1 extends Thread類,2 implements

java執行-Thread的yield方法

yield表示當前執行緒申請交出執行權,但並不是一定會交出,依賴於系統的執行緒排程。 因此該方法並不穩定。 class Test { public static void main(String[] args) throws InterruptedException { Te

java執行-Thread的sleep方法

public static native void sleep(long millis) throws InterruptedException; sleep是本地靜態方法。sleep的作用是讓執行緒進入TIME_WAITING狀態,引數是多少毫秒。 class Test { pu

執行實現區別-繼承Thread和實現Runable

一  前面一種比較簡潔。後面一種更靈活,因為java可以實現多個介面,但是隻能繼承一個類 二  適合於資源的共享 如果不涉及 多執行緒直接資源共享用Thread 比較好,否則實現Runable較好 Thread其實也是實現了Runnable介面  Thread中的start(

執行實現方式的區別Thread Runnable

多執行緒兩種實現方式的區別多執行緒的兩種實現方式 Thread Runnable 兩者的區別首先:使用Runnable介面與Thread類相比較,解決了單根繼承的定義侷限性,所以不管後面的區別和聯絡是什麼,至少這一點上就已經下了死定義– 如果要使用一定是用Runnable介面

day 33 什麼是執行? 建立方式. 守護執行. 鎖. 死鎖現象. 遞迴鎖. GIL鎖

一.執行緒       1.程序:資源的分配單位      執行緒:cpu執行單位(實體)   2.執行緒的建立和銷燬開銷特別小   3.執行緒之間資源共享,共享的是同一個程序中的資源   4.執行緒之間不是隔離的   5.執行緒可不需要 

java執行中關於join方法的使用

Thread的非靜態方法join()讓一個執行緒B“加入”到另外一個執行緒A的尾部。在A執行完畢之前,B不能工作。例如:         Thread t = new MyThread();         t.start();         t.join(); 另外,j

Java執行-FutureTask的get方法阻塞問題

FutureTask類中get方法阻塞的問題: get方法的實現: /** * @throws CancellationException {@inheritDoc} */ public V get() throws Interrupte

java---執行sleep()和setPriority()方法

package ThreadIO2_1.Thread.schedule.v1; public class MyRunner extends Thread { private static Obje

Java執行wait與synchronized方法

兩種wait()方法 第一種需要一個以毫秒計的時間作引數,它的意思和sleep()一樣,都是:“暫停一段時間”區別在於: 1.wait()會釋放物件的鎖,也就是說線上程wait()期間,別的執行緒可以呼叫它的synchronized方法。   執行緒sleep()

java執行中對於join方法的理解

對於多執行緒的join方法一直理解得很模糊,大致看了一些資料,JDK是這樣說的:join public final void join (long millis )throws InterruptedException Waits at most millis

java執行中的join方法詳解

 方法Join是幹啥用的? 簡單回答,同步,如何同步? 怎麼實現的? 下面將逐個回答。     自從接觸Java多執行緒,一直對Join理解不了。JDK是這樣說的:join public final void join(long millis)throws InterruptedException Wait

Java啟動執行方式總結

先檢視jdk幫助文件,這麼進行描述執行緒:執行緒是程式中的執行執行緒,可以由jvm來執行一個或者多個執行緒。方法1:繼承Thread 類 重寫run方法即可如下程式碼:public class Treadtest {//主方法public static void main(S

Java執行中的interrupt方法的使用

轉載出處:http://my.oschina.net/summerpxy/blog/198457  在java中,開啟一個多執行緒是很簡單的,只需要new一個runnable就可以了,但是要停止一個執行緒,卻不能簡單的使用Thread.stop()方法。

java執行一 基本實現方法、消費者生產者佇列、死鎖

1.基本概念圖 四個狀態、start 代表被建立、run表示正在執行、阻塞(在幹別的事情去了,可以把資源空出來給別人用)、死亡。 核心思想是提高cpu的使用率,你幹別的事去了我來利用cpu啊,難點是同步,同時訪問資料,一個廁所只有一個坑,倆個人一起上是不

java -- 執行建立方法

什麼是程序? 什麼是執行緒? 個人感覺比較好理解 怎麼建立多執行緒? 建立多執行緒有兩種方式: 1, 繼承 Thread 類。        2, 實現 Runnable 介面 先來看看第一種方法