【发布时间】:2011-01-27 07:09:16
【问题描述】:
我正在研究在 Android 中编写简单的图形代码,我注意到了一些 synchronized() 块。
这背后的原因是什么?我怎么知道什么时候应该“同步”我的代码?
【问题讨论】:
标签: android opengl-es canvas synchronize
我正在研究在 Android 中编写简单的图形代码,我注意到了一些 synchronized() 块。
这背后的原因是什么?我怎么知道什么时候应该“同步”我的代码?
【问题讨论】:
标签: android opengl-es canvas synchronize
synchronized 语句块通常用于并发编程(多线程应用程序),您的应用程序使用许多线程。以 Android 游戏为例,您可以有一个线程用于客户端处理,另一个用于服务器,一个用于生成其他进程,等等。
关键字本身确保您的方法一次只能被一个线程访问,这使得它们是线程安全的。如果您的应用程序要在不使用 synchronized 语句的情况下共享资源,您将面临 deadlock 发生的风险。
死锁会导致挂起,即进程挂起。应该不惜一切代价避免死锁,尤其是处理手机处理器的大小。
【讨论】: