非同步執行緒阻塞等待結果Futrue

2021-09-03 01:58:07 字數 1393 閱讀 8085

package com.bjsxt.height.design014;

public class main

}

package com.bjsxt.height.design014;

public class futureclient

}).start();

system.out.println(thread.currentthread()+"直接返回了futuredata");

return futuredata; }

}

package com.bjsxt.height.design014;

public inte***ce data

package com.bjsxt.height.design014;

public class futuredata implements data

//如果沒裝載,進行裝載真實物件

this.realdata = realdata;

isready = true;

//進行通知

notify(); }

@override

public synchronized string getrequest() catch (interruptedexception e)

} //裝載好直接獲取資料即可

return this.realdata.getrequest();

}}

package com.bjsxt.height.design014;

public class realdata implements data catch (interruptedexception e)

system.out.println(thread.currentthread()+"操作完畢,獲取結果");

result = "查詢結果"; }

@override

public string getrequest()

}

thread[main,5,main]直接返回了futuredata

thread[thread-0,5,main]real 開啟子執行緒開始耗時

thread[main,5,main]請求傳送成功!

thread[main,5,main]做其他的事情...

thread[main,5,main]開始阻塞

thread[thread-0,5,main]根據請求引數進行查詢,這是乙個很耗時的操作..

thread[thread-0,5,main]操作完畢,獲取結果

thread[main,5,main]查詢結果

非同步與執行緒阻塞

返回目錄 非同步,早期開發人員對它有很多誤解,認為不阻塞主線程就是非同步,更有認為不阻塞ui就是非同步,但非同步歸根結底和這兩個東西關係並不大,非同步的出現主要是為了提高執行緒的利用率,讓可用執行緒更高,而不是乙個執行緒只做一件事,這件事沒有完成就不去做下面的事情,這是不正確的,執行緒應該被解放出來...

併發,同步,非同步,阻塞,非阻塞,執行緒

乙個cpu沒有真正意義的併發,兩個人同時做同樣的事情才是真正意義上的併發,只有統籌分時處理.多路同步 同步,實時處理並且活動按順序執行 非同步,乙個人合理的安排時間來做事情,分時處理,活動分段執行,非順序執行 阻塞模式,等,同步,併發,非同步都有可能會阻塞,只是機率的大小 非阻塞模式 不等 併發,併...

程序 執行緒 同步非同步 阻塞非阻塞

2015 08 19 15 23 38 週三 執行緒執行緒安全 如果你的 所在的程序中有多個執行緒在同時執行,而這些執行緒可能會同時執行這段 執行緒安全問題都是由全域性變數及靜態變數引起的 若每個執行緒中對全域性變數 靜態變數只有讀操作,而無寫操作,一般來說,這個全域性變數是執行緒安全的 若有多個執...