为了账号安全,请及时绑定邮箱和手机立即绑定

如何创建 n 个子进程,将 m 个元素添加到所有子进程之间的共享列表中?

如何创建 n 个子进程,将 m 个元素添加到所有子进程之间的共享列表中?

慕雪6442864 2022-10-20 17:03:55
我想编写一个静态方法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. 您需要将 转换intDouble. 一种方法是...

Double d = new Double((double) j);


查看完整回答
反对 回复 2022-10-20
  • 1 回答
  • 0 关注
  • 70 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信