我想知道Binders在同时提供多个流程时如何在内部工作。
我试图走过司机的code,但这有点复杂。但是,如果我没有弄错的话,我发现代码在执行事务时包含了一些锁,但是并不完全确定这些锁的范围。
如您所知,Binder服务包含一个线程池(16个线程),用于增加并发性以同时为多个进程提供服务。我的困惑来到这里。如果绑定程序驱动程序本身使用某种全局锁来序列化访问,那么整个绑定器框架如何利用此线程池?
我唯一有效的答案是粘合剂可能正在使用一些"粒状"然后锁定释放它以使事物(线程)上升到服务端线程池。
我可能完全或部分错误。任何帮助将非常感谢。
PS:如果锁定就像"粒状"然后如何保护全局读/写缓冲区(如果有的话)以防止来自多个进程的潜在多个读/写。或者,那些缓冲区是否在线程堆栈中(因此受到本质保护)?