新手关于多线程异步加载资源有一些有关问题,求看看聊聊走过路过不要错过

新手关于多线程异步加载资源有一些问题,求看看聊聊走过路过不要错过。
if(_is2DAsset(fileExtension))
{
AssetTexture2D* assetTxt2d = new AssetTexture2D(GraphInterface::Context3DInstanse());
assetTxt2d->setPath(path);
assetTxt2d->load();
this->m_pAssets.insert(std::pair<std::string, AssetTexture2D*>(path,assetTxt2d));
return assetTxt2d;
}
如上,我的想法是把load()放到线程中去做(把assetTxt2d传到线程里),然后主线程继续返回assetTxt2d(此时线程没有load完,这里应该没有数据),线程load完后,assetTxt2d是否有数据?这样做的话,要避免哪些错误?
另外我想了解一下任务监听器(joblisten),好像是队列线程之类的,不知道有没有人知道这方面的概念,求指点,大体的思路和概念就可以,有伪代码什么的更好了,跪谢!
------解决思路----------------------
需要条件变量来同步等待
------解决思路----------------------
《Windows核心编程》