Thread 多執行緒使用以及四種建立方式

2021-10-04 10:44:29 字數 2319 閱讀 7144

一、實現runable介面,重新run方法

1、同步**塊

//	模擬賣票系統

class

window

implements

runnable

catch

(interruptedexception e)

system.out.

println

(thread.

currentthread()

.getname()

+":票號為:"

+ ticket)

; ticket--;}

else}}

}}public

class

threadtest1

}

2、同步方法
private

int ticket =

100;

@override

public

void

run()}

}public

synchronized

void

show()

catch

(interruptedexception e)

system.out.

println

(thread.

currentthread()

.getname()

+":票號為:"

+ ticket)

; ticket--;}

}

3、加鎖還可以是lock鎖
//lock和synchronized的區別,前者需要自己關閉,後者自動關閉

@override

public

void

run(

)catch

(interruptedexception e)

system.out.

println

(thread.

currentthread()

.getname()

+":"

+ticket)

; ticket--;}

else

}finally

}}

二、繼承thread類重寫run方法
public

static

void

main

(string[

] args)

class

threadtest1

extends

thread}}

}

三、實現callable介面,重新run方法
public class callabletest  catch (interruptedexception e)  catch (executionexception e) 

}}//1、建立乙個類實現callable介面,實現call方法

class numthread implements callable

}return sum;

}}

四、使用執行緒池建立執行緒
public

class

threadpolltest

}class

numberthread

implements

runnable}}

}

五、多執行緒常用方法
thread.yield();

//讓出cpu執行權,自己和其他執行緒一起再次搶占

start();

//執行緒開啟

sleep(long millis)

//開啟睡眠狀態,過了millis毫秒時開始執行,不釋放鎖

setpriority(int newpriority)

getpriority()

//設定和得到執行緒的優先順序,1-10,預設是5

setname(string name)

getname()

//設定執行緒的名字和得到名字

setdaemon(boolean on)

//設定執行緒為守護執行緒

join()

//加入新的乙個執行緒,並且需要新的執行緒執行完,這個執行緒才可以執行

interrupt()

//中斷執行緒

interrupted()

//判斷執行緒中斷

getstate()

//得到執行緒的狀態

多執行緒的建立 四種方式以及使用建議

方式 二 實現 runnable介面 以上兩者的聯絡與使用技巧 方式三 實現 callable介面 callable介面方式的特點 方式四 執行緒池 執行緒池的特點 1.建立乙個繼承於 thread類的子類 class thread1 extends thread public class thre...

多執行緒 四種建立方式

public class threadestablish1 start 主線程 for int i 0 i 100 i 1.建立乙個實現了thread類的子類 class subthread extends thread 注意點 如果自己手動呼叫run 方法,那麼就只是普通方法,沒有啟動多執行緒模式...

python多執行緒使用thread

import sched import threading import time defnew task function,delay time,args 定時任務函式 param function 需要執行的函式 param delay time 延遲多少時間執行 param args 需要給f...