小编sha*_*fax的帖子

Java同步列表

我有一个预先填充的数组列表.我有多个线程将从数组列表中删除元素.每个线程调用下面的remove方法,并从列表中删除一个项目.以下代码是否给我一致的行为?

ArrayList<String> list = Collections.synchronizedList(new ArrayList<String>());

void remove(String item)
{
     do something; (doesn't work on the list)
     list.remove(item);
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

java multithreading

64
推荐指数
3
解决办法
11万
查看次数

无法增加Java堆大小

我的Linux机器上有16GB RAM,并使用-Xmx4096m参数将最大Java堆内存设置为4GB.但是当我开始我的过程时,我收到以下错误.

无效的最大堆大小:-Xmx4096m指定的大小超出了可表示的最大大小.无法创建Java虚拟机.

当我将值设置为2048m时,它工作正常.

是否有任何其他配置参数需要更改以增加堆大小?

提前致谢!

java heap-memory

7
推荐指数
1
解决办法
3936
查看次数

java线程之间的通信:当一个线程完成其任务时停止所有线程

我有n个并行运行的线程,每个线程都有一些自定义逻辑.但是,我的要求是当任何线程完成执行时,所有其他线程应该停止执行并返回.

实现这个的最佳方法是什么?我想通过拥有一个共享的布尔变量来做到这一点.当任何线程完成执行时,它将设置布尔值.所有线程都定期读取此变量,并在设置时退出.

此外,我的自定义逻辑是一个无限循环,一旦我知道其他一些线程已经完成执行,我想在当前迭代后停止执行.

这样做的正确方法是什么?

java multithreading

7
推荐指数
1
解决办法
1706
查看次数

静态嵌套类线程安全 - java

我在名为"MyClass"的类中有一个静态的"Builder"类.如果我尝试从两个线程同时使用构建器创建两个MyClass实例,它会安全吗?可以将一个线程设置的值分配给另一个线程创建的对象吗?

码:

public class MyClass {
    private int height;
    private int weight;

    private MyClass(Builder builder) {
        height = builder.height;
        weight = builder.weight;
    }

    public static class Builder {
        private int height;
        private int weight;

        public Builder height(int h) {
            height = h;
            return this;
        }

        public Builder weight(int w) {
            weight = w;
            return this;
        }

        public MyClass build() {
            return new MyClass(this);
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

java multithreading builder

2
推荐指数
1
解决办法
1916
查看次数

标签 统计

java ×4

multithreading ×3

builder ×1

heap-memory ×1