2009.11.27 写的
与信号量、互斥等内核对象比起来线程内核比较龌龊,它在创建时具有2次计数。在《windows核心编程》中说过,如果不需要线程的句柄则可以关闭该句柄(这时递减一次计数),线程在自然结束时还会自动递减一次计数,这样线程内核对象就被系统回收了。今天,我在写多线程时,发现了许多应该注意的问题。
一、我在这关闭线程句柄为什么不行?
for (int i = 0; i < 10; ++i)
{
HANDLE thread = (HANDLE)::_beginthreadex(Null, 0, &WorkerThread, param, 0...
1、具名的右值引用将退化成左值
Rvalue&& r = Rvalue(); // r 是一个左值,虽然它被声明为右值引用。 // 在这样的情况下 r 如同一个局部对象:Rvalue r;
void Fun(Rvalue&& _r) // _r 也是一个左值,你可以取它地址,但这是一个危险动作。{ Rvalue t = _r; // 不会调用 Rvalue(Rvalue&&) 转移构造函数,而是调用} // Rvalue(const Rvalue&) 复制构造函数。
2、不能把右值引用绑定到左值,但是强制转换可以打破...