要實現多執行緒有兩種方式
,一種是繼承
thread類(要重寫
run()
方法),一種是實現
runnable
介面。package
com.erequan.thread;
public
class
mythread
extends
thread
public
void
run()
}}
package
com.erequan.thread;
public
class
testthread
}
public inte***ce
runnable
package
com.erequan.runnable;
public
class
myrunnable
implements
runnable
public
void
run()
}}
package
com.erequan.runnable;
public
class
testruuable
}
兩種實現方法的區別,在開發中一般都是用方法二。好處有:避免單繼承的侷限性。適用於多執行緒的共享。
如下假設乙個購票系統:
用thread
方式實現:
package
com.erequan.ticket;
public
class
buytiacet
extends
thread }}
}
package
com.erequan.ticket;
public
class
testticket
}
結果是每個執行緒都買了相同多的票數,並不是資源的共享。即每個執行緒各不相關,各自有各自的執行緒。並且不能有相同的兩個執行緒在執行,否則會報錯!!
用runnable實現
package
com.erequan.ticket;
public
class
runnableticket
implements
runnable }}
}
package
com.erequan.ticket;
public
class
testticket
}
實現了資源的共享!!
但是在不同版本的
jdk下得到的結果不同,可以檢視幫助文件的
run()
方法!!
jdk1.5
public
synchronized
void
start()
private
native
void
start0();
public
void
run()
} jdk1.4
public
synchronized
native
void
start();
public
void
run()
}
使用者空間實現執行緒 核心實現執行緒 執行緒的排程
1 在使用者空間中實現執行緒 1 特點 把整個執行緒包放在使用者空間,核心對執行緒包一無所知。從核心角度考慮,就是按正常的方式管理,即單執行緒程序 存在執行時系統 2 優點 1 使用者級執行緒包可以在不支援執行緒的作業系統上實現。2 進而,它 可以呼叫執行緒排程程式來選擇另乙個要執行的執行緒 儲存該...
執行緒篇 執行緒的實現和執行緒安全
執行緒的實現?作業系統關於 執行緒實現 使用者級 執行緒核心級 執行緒組合模型 使用者級 執行緒建立 管理 銷毀,都由執行緒庫 完成開銷比較小 作業系統對執行緒的存在一無所知,作業系統只能看到程序,而不能看到執行緒。這種模式最致命的缺點也是由於作業系統不知道執行緒的存在,因此當乙個程序中的某乙個執行...
執行緒的簡單實現
public class threadsample public static class thread1 implements runnable catch interruptedexception e public static class thread2 extends thread catc...