【问题标题】:Will Android ever suspend a UI thread to run a background thread?Android 会暂停 UI 线程以运行后台线程吗?
【发布时间】:2020-02-02 07:13:00
【问题描述】:

Android 线程调度程序是否保证主 UI 线程优先于所有其他用户(工作/后台)线程,或者用户线程是否会中断主线程?我的目标是在不过度同步我的 Java/Kotlin 代码的情况下避免竞争条件。

【问题讨论】:

  • 是的,当然(暂停???) Android 操作系统默认是单线程的,这意味着操作将默认在 UI 线程上运行,除非它们被明确安排在后台线程上运行。它本质上是 UNIX,所以时间片就是它的工作方式。保证,不(也没有保证人)。

标签: android android-threading


【解决方案1】:

所有线程都是平等的。他们中的任何一个都可以随时占用处理器。哪个处理器由它下面的 Linux 操作系统调度程序决定,它试图确保最高优先级的线程得到运行,同时确保尽可能没有任何东西被饿死。该操作系统没有“主线程”的概念。所以,是的,经常会有 UI 线程和另一个线程都想运行并且另一个线程被调度的时候。你不能指望它只在某些时候发生。你必须做真正的多线程和同步。

【讨论】:

    猜你喜欢
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-23
    • 1970-01-01
    相关资源
    最近更新 更多