我有Sum类、Creator类、Item类和Main。该造物主创造随机物品,并将它们添加到一个ArrayList这是在项目类。该求和类读取项目并总结所有的重量。在Main类中,我从多个线程Creator和Sum 开始。这两个类都实现了Runnable并覆盖了 run 方法。在创建 200 个项目后,将在控制台中打印。
如何同步这些方法?当我启动线程时,Sum 中的方法首先结束并返回权重 0,然后创建 40 000 个随机项目。我将创建项目,同时对它们的所有权重求和,最后返回创建的项目数量和所有项目的权重。
求和类方法:
@Override
public synchronized void run() {
for(Towar x: Towar.list){
try {
Thread.currentThread().wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
counter++;
sum+=x.getWaga();
if(counter%100==0){
System.out.println("Sum of "+counter+" items");
}
}
System.out.println("Total weight of Items: "+sum);
}
Run Code Online (Sandbox Code Playgroud)
创建者类方法:
@Override
public void run() {
reader=new Scanner(text);
while(reader.hasNextLine()){
counter++; …Run Code Online (Sandbox Code Playgroud)