Я близок к рисованию графики на холсте в Android, но запутался:
try {
c = panel_thread.getHolder().lockCanvas(null);
synchronized (panel_thread.getHolder()) {
panel_thread.update();
panel_thread.onDraw(c);
}
}
Как объяснено в этом ответе:
Причина, по которой он называется lockCanvas (), заключается в том, что до тех пор, пока вы не вызовете unlockCanvasAndPost (), никакой другой код не сможет вызывать lockCanvas () и записывать данные на поверхность, пока ваш код не будет завершен.
Метод lockCanvas, по-видимому, удостоверяется, что никакой другой поток dr aws на нем не вызывается до тех пор, пока не будет вызван unlockCanvasAndPost .
Это также указано в указанном ответе:
без синхронизированного блока, несколько потоков могут рисовать графику одновременно
Но если lockCanvas уже сделал записи в Canvas потоко-безопасными, то что это за цель синхронизации блока кода?