小编ter*_*roi的帖子

什么时候使用volatile多线程?

如果有两个线程访问全局变量,那么许多教程都说使变量volatile变为阻止编译器将变量缓存在寄存器中,从而无法正确更新.但是,访问共享变量的两个线程是通过互斥锁来调用保护的东西不是吗?但是在这种情况下,在线程锁定和释放互斥锁之间,代码处于一个关键部分,只有那个线程可以访问变量,在这种情况下变量不需要是volatile?

那么多线程程序中volatile的用途/目的是什么?

c++ concurrency multithreading atomic volatile

121
推荐指数
3
解决办法
5万
查看次数

用mocha和断言正确地对NaN进行单元测试

测试该函数的正确方法是什么,不返回或返回NaN.考虑:

require('assert');

var functionUnderTest = function() { 
  return NaN;
}

// mocha test for above function
describe('Function returning NaN', function() {
  it('shall return NaN', function() {
    assert.equal(functionUnderTest(), NaN); // AssertionError: NaN == NaN
    assert.notEqual(functionUnderTest(), NaN); // No AssertionError
  });
});
Run Code Online (Sandbox Code Playgroud)

我特别想测试该函数不返回NaN.我知道IEEE754指定类型NaN ==="数字"并且它不等于它自己(或任何其他数字)并且Javascript实现了浮点数,就像IEEE754定义它们一样.

但是如何测试该函数会返回还是不返回NaN?

javascript unit-testing

3
推荐指数
1
解决办法
896
查看次数