如果我有一个可以/将在任何给定时间点由多个线程访问的数组,究竟是什么导致它是非线程安全的,以及为确保该数组在大多数情况下是线程安全的而采取的步骤情况?
我在互联网上进行了广泛的查看,几乎没有发现关于这个主题的信息,一切似乎都是特定的场景(例如,这个数组,这两个线程正在像这样访问线程安全,等等)。我真的很希望有人可以回答我在顶部列出的问题,或者是否有人可以指出解释上述项目的好文件。
编辑:在 MSDN 上环顾四周后,我找到了 ArrayList 类。当您使用 synchronize 方法时,它会为给定列表返回一个线程安全的包装器。在列表中设置数据时(即 list1[someNumber] = anotherNumber;),包装器会自动处理锁定列表,还是仍然需要锁定它?