gpt4 book ai didi

C pthreads : Start a Thread from main

转载 作者:太空狗 更新时间:2023-10-29 16:12:36 24 4
gpt4 key购买 nike

我正在使用带有嵌入式 Linux (C) 的 ARM 处理器。我的主程序必须执行实时操作,并且在一定的持续时间(由主程序确定)后,我必须通过蓝牙连接将数据发送到 Android 平板电脑。

我想将蓝牙数据传输外包给 POSIX 线程。在主函数中,我现在必须触发线程来执行数据发送。那么我该如何“重启”线程,因为它应该在主函数必须执行时通过蓝牙发送数据呢?这就是为什么在 Thread 函数中有一个循环(结合 sleep 函数)也无济于事,因为正如我已经说过的,时间是由 main 函数而不是 Thread 函数本身决定的。

那么是否有重启线程的选项?或者,如果有人有更好的想法来解决这个问题,我愿意接受。 :)

最佳答案

最简单的是使用同步例程。想到信号量:

thread() {
for (;;) {
sem_wait(&semaphore);
send_data(...);
}
}

main() {
get_data();
pus_data_in_a_buffer();
sem_post(&semaphore);
// ...
}

但如果您需要做的只是异步发送数据,您可能想看看异步 IO 库 aio(7) .

关于C pthreads : Start a Thread from main,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22071698/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com