Быстрый вопрос. Я довольно новичок в потокобезопасном программировании, и мне было интересно, есть ли у меня что-то вроде ниже, будет ли это безопасным от тупика после компиляции и запуска?Синхронизация в Java
public class Foo
{
protected CustomClass[] _mySynchedData = new CustomClass[10];
public void processData()
{
synchronized(_mySynchedData) {
// ...do stuff with synched variable here
}
}
}
public class Bar extends Foo
{
@Override
public void processData()
{
synchronized(_mySynchedData) {
// perform extended functionality on synched variable here
// ...then continue onto parent functionality while keeping synched
super.processData();
}
}
}
Bar testObj = new Bar();
// Deadlock?
testObj.processData();
Любое понимание было бы весьма полезным.
На самом деле, если это _didn't_ поддерживает вложенность (и не все блокировки), я бы очень назвал это тупиком, хотя бы был задействован только один поток. – SoftMemes
Спасибо за информацию и ссылку! –