На вопрос, что, вероятно, мне нужен более убедительный ответ для реализации в моем решении. Я не уверен, правильно ли я понимаю. Ниже приведены подробности реализации:Требуется ли блокировка этого метода экземпляра
В классе, в основном способе, где объект класса С, созданный, чтобы вызвать метод экземпляра, который принимает целое число в качестве параметра:
public <AnyClass> MyMethod(int classVar)
{
return new <AnyClass>(classVar);
// Can have more implementation, using the parameter passed
}
В основном, я хотите, чтобы этот метод вызывался по нескольким потокам, используя один и тот же объект класса, параметром будет значение, предоставленное циклом for, которое запускает выполняемые потоки. Теперь в памяти мы выполняем тот же метод, для этого нужна какая-либо блокировка. На мой взгляд, нет, я тестировал, но я не уверен в теории, почему бы разные потоки не испортили значение параметра друг друга, в моей реализации это не так.
Единственное, что я не могу гарантировать, это то, что поток доступа и возвращает сначала, поскольку это не было бы в порядке, но если меня это не волнует, это правильная реализация.
Обратите внимание, что это попытка описать проблему автономно, у меня есть аналогичная реализация как часть сложного проекта.
Любые предложения/указатели были бы замечательными. Пожалуйста, дайте мне знать, если вам нужно разъяснение.
Если 'return new AnyClass (classVar);' это все, что он делает, то нет. Если происходит другое событие, все зависит от того, изменяет ли он общие ресурсы. –
Локальные переменные и функциональные параметры, передаваемые по значению, не нужно синхронизировать, они уникальны в каждом потоке. –