java多線程傳參
Ⅰ java多線程方法有哪些
java實現線程常用到的方法有三種,供參考:
/**
*方法一:繼承Thread類
*
*@authorqd
*
*/
{
@Override
publicvoidrun(){
System.out.println("run方法裡面編寫業務代碼");
}
publicstaticvoidmain(String[]args){
MyThreadmyThread=newMyThread();
//調用start方法啟動線程
myThread.start();
MyThread1myThread1=newMyThread1();
Threadthread=newThread(myThread1);
//調用start方法啟動線程
thread.start();
}
}
/**
*方法二:實現Runnable介面
*
*@authorqd
*
*/
{
@Override
publicvoidrun(){
System.out.println("run方法裡面編寫業務代碼");
}
}
/**
*方法三:實現Callable<T>介面優點:可以傳參數,有返回值類型
*
*@authorqd
*
*/
<Integer>{
@Override
publicIntegercall()throwsException{
returnnull;
}
}
Ⅱ java中多線程常見的幾個參數
java中多線程常見的幾個參數
sleep:在指定的毫秒數內讓當前正在執行的線程休眠(暫停執行).
此操作受到系統計時器和調度程序精度和准確性的影響。
該線程不丟失任何監視器的所屬權。
調用sleep的時候鎖並沒有被釋放。
休眠
Java SE5引入了更加顯示的sleep()作為TimeUnit類的一部分,這個方法允許你指定sleep()延遲的時間單元,因此可以提供更好的可閱讀性。
wait:調用wait使線程掛起,直到線程得到了notify或notifyAll消息,線程才會進入就緒狀態。
使你可以等待某個條件發生變化,而改變這個條件超出了當前方法的控制能力。
線程的執行被掛起,對象上的鎖被釋放。意味著另一個任務可以獲得這個鎖。
因此在該對象中的其他synchronized方法可以在wait期間被調用。
yield:相當於:我的工作已經做的差不多了,可以讓給別的線程使用CPU了。
當調用yield時,你也是在建議具有相同優先順序的其他線程可以運行。
對於任何重要的控制或在調整應用時,都不能依賴於yield。
yield並不意味著退出和暫停,只是,告訴線程調度如果有人需要,可以先拿去,我過會再執行,沒人需要,我繼續執行
調用yield的時候鎖並沒有被釋放。
interrupt:中斷線程。
Thread類包含interrupt()方法,因此你可以中止被阻塞的任務。
這個方法將設置線程的中斷狀態。
如果一個線程已經被阻塞,或者試圖執行一個阻塞操作,那麼設置這個線程的中斷狀態將拋出InterruptedException。
當拋出該異常或者該任何調用Thread.interrupted()時,中斷狀態將復位。
你在Executor上調用shutdownNow(),那麼它將發送一個interrupt()調用給他啟動的所有線程。
Ⅲ java runnable線程如何傳參
Runnable裡面沒有傳參函數,所以得自己造一個
0.自定義一個介面,繼承Runnable,新增一個傳參方法
{
publicMyRunnablesetParam(String...param);
}
實現這個自定義介面
MyRunnablesendMessage=newMyRunnable(){
Stringmessage;
@Override
publicMyRunnablesetParam(String...param){
message=param[0];
returnthis;
}
@Override
publicvoidrun(){
sendMessage(message);
}
};
2.初始化線程池,運行Runnable
=Executors.newCachedThreadPool();
cachedThreadPool.execute(sendMessage.setParam("Iamservice"));
如上所示,線程池調用的一個runnable實例,這個runnable實例傳入了一個字元串參數
Ⅳ Java多線程編程,怎樣實現線程間數據的傳遞
可以用拍孝櫻Scoket套接字讓伺服器和慎畝客戶端襲叢建立連接
可以根據Scoket對象的getInputStream()和getOutputStream()獲得輸入輸出流
再往流裡面寫信息
就實現了簡單的數據傳遞
當然等待數據
的時候會有阻塞現象
所以使用線程來保證數據不會因為等待而阻塞
Ⅳ ANDROID,JAVA編程,怎樣才能傳遞參數給線程
線程之間允許共享一些參數變數,你說的不同數目的參數,是不是可以用ArrayList或者數組來解決。
還有一種就是類似於main函數的形式:
public static void test(Object...objects) {
}
可變參數,jdk5以上支持。
調用可以這樣:test(a,b,c,d);
如果需要一個線程進行運算,並且等待線程運算完成並獲取結果,
參考下線程池、AsyncTask。