|
void player_init()
{
rt_err_t result;
/* create player thread */
player_thread_mq = rt_mq_create("player", sizeof(struct player_request),
8, RT_IPC_FLAG_FIFO);
RT_ASSERT(player_thread_mq != RT_NULL);
result = rt_thread_init(&player_thread_tid, "ply_bg", player_thread, RT_NULL,
player_thread_stack, sizeof(player_thread_stack),
20, 5); //这部分是线程初始化,可是怎么没看见这个线程在哪里创建的啊?
if (result != RT_EOK) rt_kprintf("player thread init failed\n");
else
{
rt_thread_startup(&player_thread_tid);
player_ui_init(); //在此函数里面有创建了一个player_entry 的线程,但是这个线程也不是一个循环,好像只是GUI 的显示?
}
}
问题: 为什么有些函数没有见到创建就直接初始化了(比方说这个player_thread )? 而有些线程有创建却又没见初始化呢 (比方说这个 key_thread_entry)? 还有些创建了,入口函数里面却又不是死循环,是代表这个线程创建后只执行一次吗(比方说 player_entry 这个)?
问题比较多,可能也比较浅,希望不要介意哈! |
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|