Tag: pthreads

为什么在Java中调用信号后调用解锁?

在Java中,为什么在调用signal( notFull.signal()和notFull.signal() )之后解锁被调用( notFull.signal() )? 顺序在pthread中反转 。 那么为什么会有区别呢? 谢谢。 从多处理器编程的艺术, 1 class LockedQueue { 2 final Lock lock = new ReentrantLock(); 3 final Condition notFull = lock.newCondition(); 4 final Condition notEmpty = lock.newCondition(); 5 final T[] items; 6 int tail, head, count; 7 public LockedQueue(int capacity) { 8 items = (T[])new Object[capacity]; 9 } 10 […]

如何从jni端调用java方法?

我在jni方面做了一些c代码函数,所有工作都很好。 public native String getMessage() 函数是从jni端返回到java端的字符串,它工作正常,所有其他jni代码也可以正常工作。 但问题是如何在不使用return的情况下返回jni函数中的字符串,所以 public native void getMessagewithoutReturn() 应该能够返回字符串。 然后我,但getMessagewithoutReturn()函数永远不会使用pthread结束循环,如下所示,你可以看到:(它有效) pthread_t native_thread; pthread_create(&native_thread, NULL, native_thread_start_reading, env); 并且每个循环迭代时间我都必须能够返回字符串,所以我不能使用return,因为它会停止函数运行。 pthread_t native_thread; pthread_create(&native_thread, NULL, native_thread_start_reading, env);sted out that 我已经测试了那个posix线程,并且在android方面一切正常,因为它一直不是启动工作线程,但现在只是在每个迭代时间获取字符串的问题,而不使用函数返回。