在Java中運行單獨的線程時,我們必須實現Runnable接口或擴展Thread類,因此實際上只有Run()方法才能用於啓動新線程。將自定義方法作爲線程運行
在C#中,我們可以使用 new Thread(target function)調用任何方法作爲新線程運行;
因此,在Java中,我們最終創建了一個單獨的類,以便能夠作爲線程運行。 那麼有沒有辦法避免這種情況?
我想避免體系結構的任何變化,而且方法本身不是很長,它只是兩個耗時的循環。
在Java中運行單獨的線程時,我們必須實現Runnable接口或擴展Thread類,因此實際上只有Run()方法才能用於啓動新線程。將自定義方法作爲線程運行
在C#中,我們可以使用 new Thread(target function)調用任何方法作爲新線程運行;
因此,在Java中,我們最終創建了一個單獨的類,以便能夠作爲線程運行。 那麼有沒有辦法避免這種情況?
我想避免體系結構的任何變化,而且方法本身不是很長,它只是兩個耗時的循環。
就我的Java知識而言:運行線程的唯一方法是通過任何提供的方式(如所命名的方法)調用run()。
然而,您可以在運行中調用您的方法。那麼你也不會改變你的架構。
在java中,一個函數(或者甚至更好的方法)不是一個對象本身,因此你必須創建一個這樣的包裝來執行你想要的。
new Thread() {
public void run() {
originalMethod();
}
}.start();
雖然不完美,但您可以使用匿名內部類來包裝您的函數。要執行的代碼在一個單獨的線程的功能會是這個樣子:
Thread t = new Thread() {
public void run()
{
myMethodHere();
}
};
t.start();
您可以創建一個使用一個輔助的方法反射來實現,
backgroundMethod("methodName");
或
backgroundMethod(object, "methodName");
除非這是你經常做的事,使用其他人建議的Runnable可能會更好/更清晰。