在windows中,有一些由系统维护的对象--事件、文件访问句柄、窗口、计时器等,它们并不是无限制的,因此系统中的所有程序都可以创建不超过50k的对象(我不确定确切的数字,但对于这个问题并不是很关键)。
因此,如果某个程序运行了很长时间,创建了许多对象,但没有释放它们(就像内存泄漏一样,但这里的系统对象是泄漏的),系统最终会耗尽对象,而其他程序试图执行需要创建任何新系统对象的操作时,会开始从系统函数获得错误指示。例如,程序A运行并泄漏系统可用的所有对象,然后程序B尝试打开文件,但失败只是因为系统没有资源为该请求提供服务。在这一点上,唯一的解决方案是重新启动程序A,以便系统回收泄漏的资源。
Un
嗨,在Linux中,有什么方法可以使我的代码免受其他操作系统中断的影响吗?例如,如果我有下面的代码,并且我需要找到确切的执行时间,而不需要其他东西干扰我的代码。
我已经研究过pthread_mutex_lock(&cs_mutex);,但无法停止其他操作来运行。
while(1){
//start some method to block other OS overheads
c_start=clock();
some_function();
c_end=clock();
//stop OS overhead block
//calculate time
}