我想編寫一個靜態方法stressTest (int n, int m),它創建 n 個子進程,將 m 個元素添加到MySafeList所有子進程之間的共享中。如果添加的元素數量與預期數量 (n × m) 不同,或者在執行過程中拋出異常,則該方法必須返回 false。確保您的測試因MySafeList未同步而失敗。然后我嘗試使用靜態列表并創建一個線程表。import java.util.ArrayList;class MySafeList extends ArrayList<Double>{ static ArrayList<Double> mySafeList; public boolean add(Double d){ mySafeList.add(d); } public int size(){ return mySafeList.size(); } public Double get(int i){ mySafeList.get(i); } static boolean stressTest(int n, int m){ Thread threads[] = new Thread[n]; //El nombre de tu variable se llama "threads" try{ for(int i=0; i<n; i++){ threads[i] = new Thread(new ThreadTest(1)); threads[i].start(); for(int j=0; j<m;j++){ Double d = new Double((double) j); mySafeList.add(d); } } }catch(Exception e){ return false; } } public static void main(String[] args) { MySafeList safeList = new MySafeList(); stressTest(2,4); }}然而我得到:C:\Users\antoi\Documents\Programming\Julien\TD6_multi_threading>javac MySafeList.javaMySafeList.java:9: error: missing return statement } ^MySafeList.java:17: error: missing return statement } ^MySafeList.java:33: error: missing return statement } ^Note: MySafeList.java uses or overrides a deprecated API.Note: Recompile with -Xlint:deprecation for details.3 errors
1 回答
慕尼黑5688855
TA貢獻1848條經驗 獲得超2個贊
方法stressTest()是靜態的。類變量mySafeList不是。要么使mySafeList靜態,要么使方法stressTest() 不是靜態的。
此外,mySafeList只能包含Double對象。您正在嘗試int將原語添加到mySafeList. 您需要將 轉換int為Double. 一種方法是...
Double d = new Double((double) j);
添加回答
舉報
0/150
提交
取消
