如果一个进程main函数里注册了一个信号,有一个信号处理函数,最后会调用exit接口函数。而且程序是多个线程,其中有的线程的优先级比较高。
我们知道exit函数会调用全局变量的析构函数,这个时候,有没有可能这个线程还在访问这个全局变量,但是已经被exit析构了呢?
这个答案是:会发生这种情况。所以需要注意会产生coredump。
下面是验证的小程序。
#include <iostream>
#include <pthread.h>
#include <unistd.h>
#include
如果一个进程main函数里注册了一个信号,有一个信号处理函数,最后会调用exit接口函数。而且程序是多个线程,其中有的线程的优先级比较高。
我们知道exit函数会调用全局变量的析构函数,这个时候,有没有可能这个线程还在访问这个全局变量,但是已经被exit析构了呢?
这个答案是:会发生这种情况。所以需要注意会产生coredump。
下面是验证的小程序。
#include <iostream>
#include <pthread.h>
#include <unistd.h>
#include