C语言中的多线程——一个线程的逻辑函数会导致主线程停止执行吗?



新手。当服务器面临网络问题(无网络)时,我需要处理该行为。有没有信号处理程序可以处理这个?我很确定没有这样的事。但是,它可以配置吗?

如果不是,我计划在同一系统上的两台服务器之间使用ping机制。

serverA的架构(中央服务器,有所有注册服务器的列表),为了简单起见,只使用一个额外的服务器

#----header files
main()
{
--serverconfig details
while(1)
--server_run()
}
同样,注册到服务器A的服务器B也具有相同的体系结构。现在,为了应对网络故障场景,我计划使用一个多线程中央服务器(a)。并在serverB的while(1)循环中插入一个ping函数

我很困惑,如果服务器A没有收到服务器b的任何ping,如何结束程序

服务器

--headerfiles
main(){
--serverconfig
Thread1withreceivePing()
while(1){
--server_run()
}
}

服务器B

--headerfiles
main(){
--serverconfig
while(1){
Thread1withSendPing()
--server_run()
}
}

ServerA程序可以在每2分钟没有收到ping信号时终止吗?请让我知道。

ServerA程序在每2分钟没有收到ping信号时可以终止吗?

答案是肯定的。所有线程共享一组全局变量(具有静态存储的变量)。这意味着线程可以更改全局变量的值,而主线程只需要定期检查它。

或者,线程可以调用exit函数。但这看起来像一个中止过程,因为其他线程可能在不安全的情况下被强制中断。

最新更新