关于线程内的局部变量的生命周期解决方案
关于线程内的局部变量的生命周期
例如在一个线程函数:
请问 CAlarm类的对象生命周期,1.每次循环都创建一个cdu的对象还是只有一个?
2.什么时候析构,即生命周期问题。
3.线程函数的局部变量和普通函数的局部变量有什么区别呢?
------解决方案--------------------
1.每次循环时都创建一个cdu对象
2.cdu的生命周期为while函数的大括号之间
3.线程的局部变量和普通函数的局部变量没什么区别
------解决方案--------------------
------解决方案--------------------
等同于下面的伪代码
例如在一个线程函数:
- C/C++ code
DWORD WINAPI TimerFunc( LPVOID lp) { While(1) { CAlarm cdu; } }
请问 CAlarm类的对象生命周期,1.每次循环都创建一个cdu的对象还是只有一个?
2.什么时候析构,即生命周期问题。
3.线程函数的局部变量和普通函数的局部变量有什么区别呢?
------解决方案--------------------
1.每次循环时都创建一个cdu对象
2.cdu的生命周期为while函数的大括号之间
3.线程的局部变量和普通函数的局部变量没什么区别
------解决方案--------------------
------解决方案--------------------
等同于下面的伪代码
- C/C++ code
DWORD WINAPI TimerFunc( LPVOID lp) { While(1) { CAlarm::CAlarm (); CAlarm::~CAlarm (); } }
------解决方案--------------------
楼上都正确, cdu 每次循环都要被构造和析构
------解决方案--------------------