1
shakeyo 2023-02-15 11:16:16 +08:00
无意义,循环不会跳出,这也太基础了
大概率是调试代码 |
2
DCELL 2023-02-15 11:19:42 +08:00
这段代码包括两部分内容:
一个死循环,每次循环会暂停执行 10 秒钟。while(1)表示无限循环,sleep(10)表示暂停执行 10 秒钟。 三个线程控制命令,分别是 cts_zmq_deinit()、pthread_cancel(thrid_msg_recv)和 pthread_cancel(thrid_msg_heartbeat)。其中 cts_zmq_deinit()是一种消息传递机制,用于线程间通信,pthread_cancel 则是线程的取消函数,用于中止正在运行的线程。 综合来看,这段代码中的循环是为了不断地暂停执行,以便等待其他线程完成它们的任务。而这三个线程控制命令则是用于在适当的时候中止这些线程,以便程序可以正常结束运行。 ------ by ChatGPT |
3
okkkk 2023-02-15 11:20:01 +08:00
while (1) 死循环,后面代码永远执行不到,即使程序被终止,也执行不到。
|
5
tyrantZhao 2023-02-15 11:36:12 +08:00
@DCELL 秀啊
|
6
oneisall8955 2023-02-15 11:36:59 +08:00
java 类似代码,编译期都过不去
|
7
billlee 2023-02-15 13:39:33 +08:00 via Android
sleep 可以被信号中断
|
9
SeanTheSheep 2023-02-15 16:47:32 +08:00
这个问题引申一下,既然 while(1)会无限循环,请问 C++ compiler 会直接把后面的 identifers 剪枝吗?还是会一起编译?
|
10
kkkbbb OP @SeanTheSheep 不会吧,while(1)后面的能不能执行取决于里面的代码逻辑,不是一定无限循环啊。
|