64,266
社区成员
发帖
与我相关
我的任务
分享
// 线程函数
void ThreadFunction(int iID, std::mutex& Lock, std::condition_variable& rStart)
{
std::unique_lock<std::mutex> unqLock(Lock);
rStart.wait(unqLock);
printf("Thread ID=%c\n",'A'+iID);
}
// 主函数
int _tmain(int argc, _TCHAR* argv[])
{
std::mutex Lock;
std::condition_variable con;
std::future<void> thd=std::async(std::launch::async,ThreadFunction,0,std::ref(Lock),std::ref(con));
con.notify_one();
thd.wait();
}
// 线程函数
void ThreadFunction(int iID, std::mutex &my_mutex)
{
std::lock_guard<std::mutex> lock(my_mutex);
printf("Thread ID=%c\n",'A' + iID);
}
// 主函数
int main()
{
std::mutex my_mutex;
my_mutex.lock();
std::future<void> thd = std::async(std::launch::async, ThreadFunction, 0, std::ref(lock));
my_mutex.unlock();
thd.wait();
}
这样?[/quote]
你这个看起来蛮靠谱的
// 线程函数
void ThreadFunction(int iID, std::mutex &my_mutex)
{
std::lock_guard<std::mutex> lock(my_mutex);
printf("Thread ID=%c\n",'A' + iID);
}
// 主函数
int main()
{
std::mutex my_mutex;
my_mutex.lock();
std::future<void> thd = std::async(std::launch::async, ThreadFunction, 0, std::ref(lock));
my_mutex.unlock();
thd.wait();
}
这样?