sun*_*die 10 android shared-libraries thread-safety bionic android-library
我正在尝试为Android系统实现本机共享库(.so).当然,有些代码块需要是线程安全的.
我在这里发现不支持pthreads锁,互斥锁或条件变量.
我想知道图书馆级别通常使用什么来实现线程安全?
如何实现这一点取决于您是否只是希望它在被 Java 级线程访问时是线程安全的,或者您需要将本机线程与 Java 线程同步。
有两种方法可以仅同步 Java 级别的线程:
1.最简单的方法是在多线程访问的native方法中添加synchronized关键字,即
public native synchronized int sharedAccess();
2.本机端同步:
(*env)->MonitorEnter(env, obj);
...                      /* synchronized block */
(*env)->MonitorExit(env, obj);
有关如何将本机线程与 Java 线程同步的信息,请参阅此处
| 归档时间: | 
 | 
| 查看次数: | 293 次 | 
| 最近记录: |