執行緒相關知識之實現Runnable

2021-10-25 02:05:59 字數 1907 閱讀 1068

1.thread class

繼承thread類

-自定義執行緒類繼承thread類

-重寫run()方法,編寫執行緒執行體

-建立執行緒物件,呼叫start()方法啟動執行緒

不建議使用:避免oop單繼承侷限性

2.==runnable介面 ==

實現runnable介面

定義myrunnable類實現runnable介面

實現run()方法,編寫執行緒執行體

建立執行緒物件,呼叫start()方法啟動執行緒

建議使用:避免單繼承侷限性,靈活方便,方便同乙個物件被多個執行緒使用

與方法一的不同之處:

啟動方式不同:

繼承thread類:子類物件.start();

實現runnable介面:傳入目標物件+thread物件.start();

new

thread

(test)

.start()

;

模擬買票

public

class

testthread1

implements

runnable

//模擬延時

trycatch

(interruptedexception e)

system.out.

println

(thread.

currentthread()

.getname()

+"-->拿到了第"

+ticketnum--

+"票");

}}public

static

void

main

(string[

]args)

}

**執行後結果:

發現問題:多個執行緒操作同乙個資源的情況下,執行緒不安全,資料紊亂;

龜兔賽跑的例子

package com.wy1104thread2;

/*首先來個賽道距離,然後要離終點越來越近

判斷比賽是否結束

列印出勝利者

龜兔賽跑開始

兔子需要睡覺。模擬兔子睡覺

最終,烏龜贏得比賽*/

public

class

race

implements

runnable

catch

(interruptedexception e)

}//判斷比賽是否結束

boolean flag=

gameover

(i);

if(flag)

system.out.

println

(thread.

currentthread()

.getname()

+"跑了"

+i+"步");

}}//判斷是否完成比賽

private

boolean

gameover

(int steps)

}return

false;}

public

static

void

main

(string[

] args)

}

結果如下:

3.callable介面

實現callable介面

多執行緒 相關知識

多執行緒 目標程序 執行緒程序 對應的就是計算機中執行的應用程式 process p new process p.startinfo.filename notepad.exe p.start 通過例項物件來開啟記事本 process ps process.getprocesses foreach p...

執行緒程式設計相關知識

一 讀寫鎖 讀寫鎖 rwlock 功能特點簡介 讀寫鎖實際是一種特殊的 自旋鎖,它把對共享資源的訪問者劃分成讀者和寫者,讀者只對共享資源進行讀訪問,寫者則需要對共享資源進行寫操作。這種鎖相對於 自旋鎖而言,能提高 併發性,因為在 多處理器系統中,它允許同時有多個讀者來訪問共享資源,最大可能的讀者數為...

Java多執行緒之實現方式

1.方式 繼承thread類,實現runnable介面。2.啟動方式 start方法 申請新執行緒來執行run方法 run方法 在原來執行緒執行run方法,普通的方法呼叫 3.舉例 繼承thread類 class threadthread extends thread 實現runnale介面 cla...