Java: Как синхронизировать доступ к массиву и каковы ограничения о том, что идет в синхронизированном состоянии

У меня был массив 2x2, на котором у меня работают два потока.

Можно использовать синхронизированное заявление в Java на массиве?

Как работает блокировка? Учебная поток Java заявил, что синхронизированное заявление работает на объектах, поэтому я не был уверен, что они имели в виду. Другой сайт сказал, что я могу сделать заявление, подобное

synchronized (array1[]){

}

, это синхронизирует доступ к всему в массиве, чтобы массив был заблокирован в других потоках?

Если у меня есть двухмерный массив, могу ли я использовать

синхронизированные (Array1 [I]) , чтобы заблокировать один из строк массива?

и возможно ли блокировать отдельные значения массива с чем-то вроде

synchronized (array1[i][j]){

}

, но да, советы или помощь очень ценятся. На самом деле я уже перевернул его, правильно или нет. Но я хочу знать для будущего использования

10
задан Vivin Paliath 8 September 2011 в 16:02
поделиться