This topic created in 1186 days ago, the information mentioned may be changed or developed.
c++项目,如下代码:
while (1) {
sleep(10);
}
cts_zmq_deinit();
pthread_cancel(thrid_msg_recv);
pthread_cancel(thrid_msg_heartbeat);
while 循环后面的后处理有意义么?理论上会执行到么?
10 replies • 2023-02-16 09:43:20 +08:00
 |
|
1
shakeyo Feb 15, 2023
无意义,循环不会跳出,这也太基础了 大概率是调试代码
|
 |
|
2
DCELL Feb 15, 2023
这段代码包括两部分内容:
一个死循环,每次循环会暂停执行 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 Feb 15, 2023
while (1) 死循环,后面代码永远执行不到,即使程序被终止,也执行不到。
|
 |
|
6
itechify Feb 15, 2023
java 类似代码,编译期都过不去
|
 |
|
7
billlee Feb 15, 2023 via Android
sleep 可以被信号中断
|
 |
|
9
SeanTheSheep Feb 15, 2023
这个问题引申一下,既然 while(1)会无限循环,请问 C++ compiler 会直接把后面的 identifers 剪枝吗?还是会一起编译?
|