我正在考虑在Android中编写简单的图形代码,我注意到了一些synchronized()块。
这背后的原因是什么?我如何知道何时“同步”我的代码?
答案 0 :(得分:26)
synchronized
语句块通常用于并发编程(多线程应用程序),其中您的应用程序使用许多线程。作为Android游戏的一个例子,你可以有一个带有客户端处理的线程,另一个用于服务器,一个用于产生其他进程,等等。
关键字本身确保您的方法一次只能被访问一个线程,这使它们成为线程安全的。如果您的应用程序在不使用synchronized
语句的情况下共享资源,则会冒deadlock发生的风险。
死锁将导致挂断,即进程挂起。应该不惜一切代价避免死锁,特别是处理移动电话处理器的大小。