【问题标题】:When do I synchronize methods or use synchronized blocks in my methods in an Android game?我何时在 Android 游戏的方法中同步方法或使用同步块?
【发布时间】:2011-01-27 07:09:16
【问题描述】:

我正在研究在 Android 中编写简单的图形代码,我注意到了一些 synchronized() 块。

这背后的原因是什么?我怎么知道什么时候应该“同步”我的代码?

【问题讨论】:

    标签: android opengl-es canvas synchronize


    【解决方案1】:

    synchronized 语句块通常用于并发编程(多线程应用程序),您的应用程序使用许多线程。以 Android 游戏为例,您可以有一个线程用于客户端处理,另一个用于服务器,一个用于生成其他进程,等等。

    关键字本身确保您的方法一次只能被一个线程访问,这使得它们是线程安全的。如果您的应用程序要在不使用 synchronized 语句的情况下共享资源,您将面临 deadlock 发生的风险。

    死锁会导致挂起,即进程挂起。应该不惜一切代价避免死锁,尤其是处理手机处理器的大小。

    【讨论】:

    • 没有线程同步就不会发生死锁(其中使用同步是最简单的方法,但不是唯一的方法)。处理器的大小(或速度)对于死锁并不重要。内核数量可能会(但这还不是人们在 2010 年必须担心的事情)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 2013-01-31
    • 1970-01-01
    • 1970-01-01
    • 2019-03-15
    • 1970-01-01
    相关资源
    最近更新 更多