Public Class A
{
private Object memberlockObject = new Object();
public doStuffapproach1(){
synchronized(this){
// Do something;
}
}
public doStuffapproach2(){
synchronized(memberlockObject){
// Do something;
}
}
public doStuffapproach3(Object parameterLockObject){
synchronized(parameterLockObject){
// Do something;
}
}
}
В приведенном выше коде, делают методы doStuffapproach1, doStuffapproach2, doStuffapproach3 достигнуть того же самого типа синхронизации блока или нет. Если нет, то как они отличаются друг от друга. В каких сценариях каждый должен использоваться?чем разница между синхронизированы (это) и синхронизированы (какой-то другой объект)
P.S: Я понимаю, что синхронизация уровня метода так же хороша, как и синхронизация всего тела метода (это).
Подсказка: на самом деле вы должны сделать некоторые предварительные исследования, прежде чем задавать вопросы. И хорошо, этот материал действительно документирован повсюду ... а также попытайтесь уменьшить количество используемых вами тегов до необходимого минимума. – GhostCat