實現方式和繼承方式有什么區別呢?
*區別:
*繼承Thread:線程代碼存放在Thread子類run方法中
*實現Runnable:線程代碼存放在接口的子類的run方法中
*實現方式的好處:避免了單繼承的局限性
*在定義線程時,建議使用實現方式,當然如果一個類沒有繼承父類,那么也可以通過繼承Thread類來實現多線程
*注意:Runnable接口沒有拋出異常,那么實現它的類只能是try-catch不能throws
*Java對多線程的安全問題提供了專業的解決方式就是同步代碼塊synchronized(對象){需要同步的代碼}
*同步的前提:
*1.有2個及以上的線程
*2.多個線程使用用一個鎖(對象)
*同步的好處:解決了多線程的安全問題
*同步的弊端:多個線程需要判斷鎖,較為消耗資源
package 多線程;class Ticket implements Runnable{// private static int tick = 100; private int tick=100; Object obj = new Object();//
主站蜘蛛池模板:
苍溪县|
安龙县|
新乐市|
鄱阳县|
中牟县|
江安县|
井研县|
天全县|
正安县|
卓尼县|
丰镇市|
陈巴尔虎旗|
武鸣县|
抚松县|
扎囊县|
兰州市|
新河县|
靖边县|
水富县|
扎兰屯市|
新宾|
鹤壁市|
建水县|
长兴县|
连云港市|
两当县|
阿克陶县|
微山县|
普兰县|
蒙山县|
尚义县|
康保县|
通榆县|
禄劝|
阿拉善盟|
久治县|
太仓市|
汉阴县|
沁源县|
荥经县|
德钦县|