Android ndk 在本机代码中使用SDK信号量 我们有一个大的C++代码库,我移植到Android上。我们有远见地抽象出各种依赖于平台的特性(线程、文件访问等),因此这个过程包括在NDK中逐步实现适合Android的代码功能

Android ndk 在本机代码中使用SDK信号量 我们有一个大的C++代码库,我移植到Android上。我们有远见地抽象出各种依赖于平台的特性(线程、文件访问等),因此这个过程包括在NDK中逐步实现适合Android的代码功能,android-ndk,Android Ndk,在我意识到信号量(在我们的核心代码中使用)在NDK中似乎没有实现之前,我一直进展得相当顺利 我想知道在这种(可能还有其他)情况下,是否有可能在SDK中实现所需的功能性(如果存在),例如“Java”信号量,并通过JNI接口将其传递给本机代码,以便本机代码通过适当的回调对其进行操作 出于同步目的,这是否有不可修改的原因 谢谢使用传递给本机代码的基于Java的实现可能会导致信号量操作非常慢,因为它们必须跨越JNI边界 有什么原因不能使用POSIX信号量吗?请参阅NDK标题中的semaphore.h。使

在我意识到信号量(在我们的核心代码中使用)在NDK中似乎没有实现之前,我一直进展得相当顺利

我想知道在这种(可能还有其他)情况下,是否有可能在SDK中实现所需的功能性(如果存在),例如“Java”信号量,并通过JNI接口将其传递给本机代码,以便本机代码通过适当的回调对其进行操作

出于同步目的,这是否有不可修改的原因


谢谢

使用传递给本机代码的基于Java的实现可能会导致信号量操作非常慢,因为它们必须跨越JNI边界


有什么原因不能使用POSIX信号量吗?请参阅NDK标题中的
semaphore.h

使用传递给本机代码的基于Java的实现可能会导致最糟糕的后果,即信号量操作将非常缓慢,因为它们必须跨越JNI边界


有什么原因不能使用POSIX信号量吗?请参阅NDK标题中的
semaphore.h

有个坏消息。在android版本的pthread上未实现信号量


对我来说,羊群(2)是一个答案。但当您试图从不同的用户锁定同一个文件时,可能会出现一个潜在的问题

伙计们,有个坏消息。在android版本的pthread上未实现信号量


对我来说,羊群(2)是一个答案。但当您试图从不同的用户锁定同一个文件时,可能会出现一个潜在的问题

谢谢你,凯尔诺斯。我的错误-我没有发现includes文件夹中存在semaphore.h。@DaveFussell,您是从usr/include还是usr/include/asm中包含semaphore.h?谢谢kelnos。我的错误-我没有发现includes文件夹中存在semaphore.h。@DaveFussell,您是从usr/include还是usr/include/asm中包含semaphore.h?