我一直在搜索和阅读有关杀死线程(C posix 线程)的信息,每个人都说这不是一个好主意,因为线程应该使其工作然后返回......但我的问题是下一个:
我正在我的本地网络中接收消息(使用 recvfrom 函数),但是这个函数“阻止”我的程序,我的意思是,如果我不修改任何消息,该函数会保持锁定(永远)直到它接收到某些东西。
为了避免这种情况,我想使用线程,所以,当我的主线程在“计数”时,我的第二个线程是尝试接收消息。如果在确定的时间(即 1 秒),我的第二个线程仍在等待消息(锁定在 recvfrom 函数中)我需要“杀死它”然后创建另一个线程重新开始(并尝试从另一个IP)。这意味着并不总是我的线程会完成它的工作,我不能永远等待......
到目前为止,我可以做到这一点(创建很多线程并从我感兴趣的 IP 接收消息),但我不知道如何杀死从未收到任何东西的线程......
有人知道如何杀死线程吗?或者当我的主程序返回时它们会自动被杀死?
谢谢你,真的很抱歉我的英语不好......