我不太擅长多线程编程,所以我想寻求一些帮助/建议。
在我的应用程序中,我有两个线程试图访问共享对象。可以考虑尝试从另一个对象中调用函数的两个任务。为清楚起见,我将展示程序的某些部分,这些部分可能不是很相关,但希望可以帮助解决我的问题。
请看下面的示例代码:
//DataLinkLayer.h
class DataLinkLayer: public iDataLinkLayer {
public:
DataLinkLayer(void);
~DataLinkLayer(void);
};
Run Code Online (Sandbox Code Playgroud)
其中 iDataLinkLayer 是一个接口(没有任何实现的抽象类),包含纯虚函数和一个指向 DataLinkLayer 对象(dataLinkLayer)的引用(指针)声明。
// DataLinkLayer.cpp
#include "DataLinkLayer.h"
DataLinkLayer::DataLinkLayer(void) {
/* In reality task constructors takes bunch of other parameters
but they are not relevant (I believe) at this stage. */
dll_task_1* task1 = new dll_task_1(this);
dll_task_2* task2 = new dll_task_2(this);
/* Start multithreading */
task1->start(); // task1 extends thread class
task2->start(); // task2 also extends thread class
}
/* sample stub functions for testing */ …Run Code Online (Sandbox Code Playgroud)