我使用pthread_create()在我的Linux应用程序中创建了一个线程。我想让这个线程以非常低的优先级运行,因为在同一个应用程序中有一些实时线程在运行。下面是线程函数本身中的代码:
pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL);
/* Trying to set lowest priority possible for this thread */
假设下面的代码由10个线程执行。
pthread_mutex_lock(&lock)
Some trivial code
pthread_mutex_unlock(&lock)
为了解释的目的,让我们假设线程是T1、T2、T3.....T10。我的要求是,只要T1或T2或T3(即任何T1、T2或T3)正在等待获取锁,其他线程i.t T4、T5、T6.....T10就不应该能够获得锁,例如T1、T2和T3在获取锁时应优先考虑其他线程。
我想这可以通过增加线程( T1、T2和T3 )的优先级来实现。
这是伪代码
if this thread is T1 or T2 or T3
in