gpt4 book ai didi

c - 与 main() 线程同步

转载 作者:太空宇宙 更新时间:2023-11-04 07:07:44 25 4
gpt4 key购买 nike

main()
{
i=9000000000; // to synchronize thread with while loop
while(i)i--; //if i don't use these two lines then my program terminates before thread starts.
udp_socket();
fun();
}

udp_socket()
{
// open a udp socket then create thread
pthread_create(tid1,NULL,fun2,(int *)socket_descriptor2);
}

fun()
{
}

fun2(int socket_descriptor2)
{
while(1)
{
}
}
  1. 我打开了一个 UDP 套接字,然后创建了一个线程,在线程内部,一个 while 循环不断地在定义的 ip 和端口上接收数据。

  2. 当 main 终止时,我的线程停止工作......

  3. 我想在 main() 终止时连续执行我的线程,或者我的 main() 也在不终止的情况下连续执行。

我该如何实现?

最佳答案

i want to execute my thread continuously even when the main() terminates

通过调用 pthread_exit() 退出 int main():

int main(void)
{
...

pthread_exit(NULL); /* This call exits main() and leaves all other thread running. */

return 0; /* Is never reached, it's just there to silence the compiler. */
}

关于c - 与 main() 线程同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31199433/

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