繼承thread類
實現runnable介面(優先選擇)
public
class
testthread1
}}//class runner1 implements runnable
}}
public
class
testthread2
}//class runner1 implements runnable
}}
public
class
testthread3
}system.out.println("main over");
r3.shutdown(); //正常終止子執行緒
}}class
runner3
implements
runnable
}public
void shutdown()
}
public
class
testthread4
}}class
runner5
extends
thread
}}
1 yield()方法:給其他執行緒可以執行的機會
public
class
testyield
}class
mythread3
extends
thread
public
void run() }}
}
2 join()方法:將多個執行緒合併,相當於方法呼叫
public
class
testjoin catch (interruptedexception e)
for(int i = 0; i < 10; i++)
}}class
mythread2
extends
thread
public
void run() catch (interruptedexception e) }}
}
3 interrupt()方法:終止子執行緒, 該方法比較暴力,建議少用
public
class
testinterrupt catch (interruptedexception e){}
mythread.interrupt(); //中斷,拋異常,子執行緒結束
}}class
mythread
extends
thread catch (interruptedexception e) }}
}
public
class
testpriority
}class
t1implements
runnable
}}class
t2implements
runnable
}}
//死鎖
public
class
testdeadlock
implements
runnable catch (interruptedexception e)
synchronized (o2) }}
if(flag == 2) catch (interruptedexception e)
synchronized (o1) }}
}public
static
void
main(string args)
}
//生產者消費者問題
public
class
producerconsumer
}//饅頭
class
wotou
public string tostring()
}//容器
class
syncstack catch (interruptedexception e)
}this.notify(); //喚醒乙個當前物件的被鎖住的執行緒
arrwt[index] = wt;
index++;
}//拿出饅頭
public synchronized wotou pop() catch (interruptedexception e)
}this.notify();
index--;
return arrwt[index];
}}//生產者有乙個容器的引用,這樣才知道生產出來的饅頭放在何處
class
producer
implements
runnable
public
void run() catch (interruptedexception e) }}
}//消費者有乙個容器的引用,這樣才知道從**拿饅頭
class
consumer
implements
runnable
public
void run() catch (interruptedexception e) }}
}
//面試題
public
class
ttimplements
runnable
public
void
m2()
public
void
run() catch (exception e)
}
JAVA多執行緒入門
就緒 runnable 呼叫start 方法 執行 running 處於就緒狀態的執行緒獲得cpu,開始執行run 方法體 阻塞 blocked 執行緒呼叫sleep 方法主動放棄所占用的處理器資源 執行緒呼叫了乙個阻塞式的io方法 執行緒試圖獲得乙個同步監視器,但該監視器被其他執行緒所持有 執行緒...
Java多執行緒入門教程
死亡狀態 dead 執行緒執行完了或者因異常退出了run 方法,該執行緒結束生命週期。修飾普通方法 獲得this物件鎖 synchronized public void synchronized public static void public void 當多個執行緒同時訪問同乙個物件加x鎖的方法...
Java 高階 多執行緒快速入門
這世上有三樣東西是別人搶不走的 一是吃進胃裡的食物,二是藏在心中的夢想,三是讀進大腦的書 system.out.println 多執行緒建立開始 thread thread new thread new runnable thread.start system.out.println 多執行緒建立結...