javaSe 執行緒練習

2021-09-24 11:11:28 字數 1789 閱讀 4643

1、編寫兩個執行緒,乙個執行緒列印1-52的整數,另乙個執行緒列印字母a-z。列印順序為12a34b56c….5152z。即按照整數和字母的順序從小到大列印,並且每列印兩個整數後,列印乙個字母,交替迴圈列印,直到列印到整數52和字母z結束

@test//junit測試

public void print()

class print implements runnableelse

try catch (interruptedexception e)

}} }

}

2、有乙個**池,該**池中存放了獎勵的金額,該**池用乙個陣列int arr = ; 

建立兩個**箱(執行緒)設定執行緒名稱分別為「**箱1」,「**箱2」,隨機從arr陣列中獲取獎項元素並列印在控制台上,格式如下:

**箱1 又產生了乙個 10 元大獎

**箱2 又產生了乙個 100 元大獎

public class hhreades 

}//做法一:

class jackpot implements runnable;

listlist = new arraylist<>();

@override

public void run()

system.out.println(thread.currentthread().getname()+string.format("又產生了乙個 %s 元大獎", arr[i]));

list.add(i);}}

}}//做法二:

class jackpot1 implements runnable;

listlist = new arraylist<>(); }

class meet implements runnable

} }int arr = new int[7];

int num = 0;

@override

public void run()

}} public listrandomred()

list.add(a);

} return list;

} public int randomblue()

}

4、啟動3個執行緒列印遞增的數字, 執行緒1先列印1,2,3,4,5, 然後是執行緒2列印6,7,8,9,10, 

然後是執行緒3列印11,12,13,14,15. 接著再由執行緒1列印16,17,18,19,20….以此類推, 直到列印到75(老師說:三個交替沒意義)

這種做法投機取巧了,網上還有高階做法

public class thread3 

}class print implements runnable

for(int i=1;i<6;i++)

j++;

m++;

if(m==4) m=1;

o.notifyall();

}else catch (interruptedexception e) }}

} }}

5、兩個使用者交替向同乙個賬戶存錢各3次,每次1000元,並列印餘額

public class thread6 

}class accounts catch (interruptedexception e)

} }class user implements runnable

@override

public void run() }

}

javaSE 多執行緒(守護執行緒)

我們一般使用多執行緒,都是while 的死迴圈,想要結束執行緒,只需退出死迴圈即可 當執行緒中呼叫了sleep 方法或者 wait 方法,當前的執行緒就會進入凍結狀態,這個執行緒就結束不了 呼叫thread 物件的interrupt 方法,可以強制解凍,此時 run 方法中需要捕獲到 interru...

JAVA SE 執行緒基礎操作

構造方法 獲取資訊 獲取物件 獲取狀態 修改資訊 修改狀態 例項 main函式的對應main執行緒 public class test 例項 計算大於某一規定值的質數的執行緒 繼承thread類 class primethread extends thread 重寫run方法 public void...

javaSE 多執行緒之執行緒池

1 使用語法 publicstaticvoiduseexecutorservice executorservice shutdown 輸出 pool 1 thread 3 pool 1 thread 2 pool 1 thread 1 pool 1 thread 3 pool 1 thread 2 ...