java同时执行同一个方法吗_java 返回结果的同时执行另一个方法
照?JPer?的指點,改寫了代碼 如下,旨在說明 " 如果調(diào)用方法 a() 的過程還沒有結(jié)束,JAVA虛擬機 JVM絕不會去解釋并執(zhí)行下一行,即絕不會去創(chuàng)建JSONObject 對象 jsonObject, 接著返回這個對象,以結(jié)束(完成)方法 cs() 調(diào)用"。
簡單定義了 ?OSCHINA 類 來替代? JSONObject 類。它有一個屬性 name。 一旦調(diào)用它的有參構(gòu)造方法,這個字符串參數(shù)值,就將賦予屬性 name。
執(zhí)行方法 cs()的最后兩行代碼 所返回的 結(jié)果, 是一個 name 是”開源中國”的 OSCHINA類的對象。
a() 方法的執(zhí)行代碼包括兩步:
a.???? 首先, ?創(chuàng)建一個 線程A_Thread 類的對象 a_thread,并啟動這個線程。
b.???? 這個線程每半秒輸出一次信息:"執(zhí)行方法 a() 被調(diào)用的線程正在運行。"
c.???? 創(chuàng)建并啟動線程后 休眠 2 秒鐘,才結(jié)束方法 a() 的調(diào)用。這期間線程會不時發(fā)出信息。
class OSCHINA { //用來替代 JSONObject 的類定義
String name; //字符串屬性
public OSCHINA(String s){//構(gòu)造方法
name=s;
System.out.println("OSCHINA 類的構(gòu)造方法被調(diào)用.");
}
}
public class A{
public void a() {//起始方法 a的定義
new Thread(new Runnable(){ //創(chuàng)建一個線程
@Override
public void run(){
while(true) {
try{
Thread.sleep(500);//每半秒輸出一次信息
}catch(InterruptedException e){};
System.out.println("執(zhí)行方法 a() 被調(diào)用的線程正在運行。");
}
}
}).start();
try{
Thread.sleep(2000);//休眠2秒后才結(jié)束a 的調(diào)用
} catch(InterruptedException e) {};
System.out.println("執(zhí)行 a 結(jié)束。");
}//方法 a 的定義 完成
private OSCHINA cs() {
System.out.println("調(diào)用 cs(), 開始處理...");
a();
OSCHINA o= new OSCHINA("開源中國");
return o;
}
public static void main(String args[]){
A t= new A();
System.out.println((t.cs()).name);
}
}
輸出表明,只有調(diào)用方法 a() 的任務(wù)完成之后,才得以執(zhí)行下面的代碼 ( 調(diào)用 OSCHINA的構(gòu)造方法, 創(chuàng)建 ?對象,然后返回這個對象以結(jié)束 cs() 的調(diào)用) 。就是說:跳過方法 a() 的執(zhí)行時間,直接返回結(jié)果"?是不可能的(錯誤的)。
調(diào)用 cs(), 開始處理...
執(zhí)行方法 a() 被調(diào)用的線程正在運行。
執(zhí)行方法 a() 被調(diào)用的線程正在運行。
執(zhí)行方法 a() 被調(diào)用的線程正在運行。
執(zhí)行 a 結(jié)束。
OSCHINA 類的構(gòu)造方法被調(diào)用.
開源中國
執(zhí)行方法 a() 被調(diào)用的線程正在運行。
執(zhí)行方法 a() 被調(diào)用的線程正在運行。
執(zhí)行方法 a() 被調(diào)用的線程正在運行。
總結(jié)
以上是生活随笔為你收集整理的java同时执行同一个方法吗_java 返回结果的同时执行另一个方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java批量导入和批量删除_MyBati
- 下一篇: import java.util.cal