0
@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使用它以便没有其他线程在画布上绘制..

问题是是否通过强制其等待来锁定画布以防止其他线程拥有画布。 那么需要同步块,因为线程无法到达该块,因为它被阻塞了

4

1 回答 1

-1

我认为,如果lockCanvas无法获得锁,它只会返回null并继续执行。

于 2013-07-14T12:39:14.240 回答