我正在做一个android项目,发现一个操作成为性能瓶颈。此操作适用于大型数组 A 并将结果存储到另一个数组 B 中。
我发现这个操作可以并行化。数组A可以分成N个更小的段。该操作可以独立地对每个段进行操作,并将结果存储到 B 中的相应段中。
该操作使用本机代码编写,带有 GetPrimitiveArrayCritical/ReleasePrimitiveArrayCritical 对以访问数组 A 和 B。
我的问题是,如果使用多线程,GetPrimitiveArrayCritical(pEnv, A, 0) 将从不同的线程多次调用。GetPrimitiveArrayCritical 是否阻塞?即,如果一个线程进行此调用,第二个线程能否在第一个线程调用 ReleasePrimitiveArrayCritical() 之前进行相同的调用?
请帮忙。