gpt4 book ai didi

android - Android AIDL/Binder 接口(interface)对象是线程安全的吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:54:56 27 4
gpt4 key购买 nike

如果我有一个表示远程接口(interface)(到 Android 服务或远程客户端的回调接口(interface))的 Binder 对象,那么在从多个线程通过该对象发送 IPC 时我是否需要显式同步,或者由底层 Android 组件?

最佳答案

如果我们希望客户端和服务在同一个进程中运行,并且不希望跨不同应用程序执行并发 IPC,则使用 Binder 类实现 Bounded 服务。因此调用服务方法的线程(在客户端中)将被阻塞,直到它返回。在客户端( Activity )中可能会以编程方式产生多个线程,每个线程都会在任何时刻调用服务方法。因此,服务应该实现为线程安全的,因为可能有多个线程同时调用服务方法。结论是,当扩展 Binder 类以实现有界服务时,android 不会处理同步。

Bounded service是使用AIDL实现的,如果我们想让来自不同应用程序的clients访问服务进行IPC,并且希望在服务中处理多线程。结论是当使用 AIDL 实现有界服务时,android 不会处理同步。

关于android - Android AIDL/Binder 接口(interface)对象是线程安全的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3229597/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com