Java繼承抽象類Thread,實現(xiàn)接口Runnable,倒計時,線程休眠,靜態(tài)變量【詩書畫唱】



使用繼承抽象類Thread方式創(chuàng)建一個線程,打印1到100之間的奇數(shù)設置其名稱為線程1

package thread;
public class ji {
public static void main(String[ ] args) {
ThreadClass ThreadName=new ThreadClass() ;
ThreadName. setName("線程1");
// 用setName設置名字,
// 用getName獲取設置或本身就已經(jīng)有的名字等。
ThreadName.start();//:這里用start固定名的
// 方法開啟一個線程后,會執(zhí)行run方法
// ThreadName. run();(這里是直接調(diào)用run方法。)
}}
// 并沒有啟動線程
class ThreadClass extends Thread{
//類繼承Thread后,
// 里面要重寫run(這個方法名是固定的)方法:
@Override
public void run() {
for(int i=0;i<100;i++){
if(i%2==1){
System. out.println("線程名:"+getName()+";? ?" + i) ;?
}}}}


使用實現(xiàn)接口Runnable方式創(chuàng)建一個線程,打印1到100之間的奇數(shù),設置其名稱為線程2

package thread;
public class jieKou {
public static void main(String[ ] args) {
ThreadClass2 ThreadName=new ThreadClass2() ;
Thread Thread=new Thread(ThreadName, "線程2");
// 也可以用“Thread. setName("線程2");”來重命名。
Thread.start() ;
}}
class ThreadClass2 implements Runnable{
@Override
public void run() {
for(int i=1;i<=100;i++){if(i%2==1){
System. out . println
("線程名:"
+Thread.currentThread().getName ()+"; "+i);}}}}


使用線程休眠制作一個10秒的倒計時

package thread;
public class daoJiShi {
public static void main(String[] args) {
ThreadClass3 ThreadName=new ThreadClass3() ;
Thread Thread=new Thread(ThreadName, "線程3");
Thread.start() ;
}}?
class ThreadClass3 implements Runnable{
public void run() {
for(int i=10;i>0;i--){
try {
Thread. sleep(1000);
// 1000毫秒=1秒
}
// interrupted
// 英[??nt??r?pt?d]
// 美[??nt??r?pt?d]
//阻斷
// 當一個線程處于阻塞狀態(tài)下(例如休眠)的情況下,
// 調(diào)用了該線程的interrupt()方法,
// 則會出現(xiàn)InterruptedException。
catch (InterruptedException e) {
// TODO Auto-generated catch block
e. printStackTrace( );
}
System. out. println(i);
}
}}


創(chuàng)建一個線程,定義靜態(tài)變量i=0,使用線程循環(huán)100次,統(tǒng)計i的值,創(chuàng)建2個線程循環(huán)100次,統(tǒng)計i的值

package thread;
public class staticBianLiang {
public static void main(String[ ] args) {
ThreadClass4? ThreadClass1=new ThreadClass4 () ;
ThreadClass4? ThreadClass2=new ThreadClass4();
Thread Thread1=new Thread(ThreadClass1, "線程1");
Thread Thread2=new Thread(ThreadClass2, "線程2");
Thread1.start();Thread2.start();
}}
class ThreadClass4 implements Runnable{
//靜態(tài)的單詞:可以被多 個類所共享
static int num=0;
public void run() {
for(int i=0;i<100; i++){
num++;
System. out . println("線程名:"
+Thread.currentThread().getName ()+"; "+num) ;
}}}



