条件变量的使用注意

来源:互联网 发布:方差分析用什么软件 编辑:程序博客网 时间:2024/05/16 19:06
linux下多线程编程时,随着主线程的结束,在整个进程结束时,仍然有正在运行的子线程,那么这些子线程也会一并结束(注意,主线程的结束并不会影响子线程的结束),但是当子线程中有条件变量正在wait时,会出现~condition_variable_any():Assertion '!pthread_mutex_destroy(&internal_mutex)' failed.的错误,大概意思是说互斥变量在销毁时出现了异常。一个解决的办法是在进程结束前手动对这个条件变量所等待的信号进行notify唤醒操作,直到可以确定在进程结束前该条件变量所在的线程已经从等待状态转入了运行状态,那么相关变量就能正常析构销毁了。
原创粉丝点击