Прошло много времени с тех пор, как на этот вопрос был дан ответ, но я хотел бы отметить, что Android NDK теперь поддерживает C++11
и выше, поэтому теперь можно использовать std::thread
и std::mutex
вместо * 1004. * вот пример:
#include <thread>
#include <mutex>
int count = 0;
std::mutex myMutex;
void increment_count() {
std::lock_guard<std::mutex> lock(myMutex);
// Safely increment count
count++
// std::mutex gets unlocked when it goes out of scope
}
void JNICALL package_name_class_runMutexExample() {
// Start 2 threads
std::thread myThread1(increment_count);
std::thread myThread2(increment_count);
// Join your threads
myThread1.join();
myThread2.join();
}