eric2013 发表于 2021-8-18 17:25:26

RTX5任务的Joinable模式作用


任务设置为Joinable模式后,可以函数osThreadExit 和 osThreadJoin配合一起用,仅此作用,别无他用。

任务里面调用函数osThreadExit 退出任务。并通过函数osThreadJoin最终返回。


__NO_RETURN void worker (void *argument) {
; // work a lot on data[]
osDelay(1000U);
osThreadExit();
}

__NO_RETURN void thread1 (void *argument) {
osThreadAttr_t worker_attr;
osThreadId_t worker_ids;
uint8_t data;
memset(&worker_attr, 0, sizeof(worker_attr));
worker_attr.attr_bits = osThreadJoinable;

worker_ids = osThreadNew(worker, &data, &worker_attr);
worker_ids = osThreadNew(worker, &data, &worker_attr);
worker_ids = osThreadNew(worker, &data, &worker_attr);
worker_ids = osThreadNew(worker, &data, &worker_attr);

osThreadJoin(worker_ids);
osThreadJoin(worker_ids);
osThreadJoin(worker_ids);
osThreadJoin(worker_ids);

osThreadExit();
}







清风徐来 发表于 2023-2-21 21:25:15

osThreadExit 只能任务退出自己。如果是B任务 结束A任务,如何与osThreadJoin配合使用呢?

eric2013 发表于 2023-2-22 10:49:04

清风徐来 发表于 2023-2-21 21:25
osThreadExit 只能任务退出自己。如果是B任务 结束A任务,如何与osThreadJoin配合使用呢?

那没必要用这个模式了,其它方法实现即可。
页: [1]
查看完整版本: RTX5任务的Joinable模式作用