@Override
public void run()
{
Canvas canvas = null; // used for drawing {
while (threadIsRunning)
{
try
{
canvas = surfaceHolder.lockCanvas(null); // line 1
synchronized(surfaceHolder) // line 2
{ //do something .....
}
}
}
}
根据许多帖子和博客lockCanvas
将对画布进行锁定,因此无法多次访问画布,并且synchronized block
使用它以便没有其他线程在画布上绘制..
问题是是否通过强制其等待来锁定画布以防止其他线程拥有画布。 那么需要同步块,因为线程无法到达该块,因为它被阻塞了