本文主要解释“C如何将链接线程视为范围的容器”。本文的解释简单明了,易学易懂。接下来,请跟随边肖的思路,学习学习“C如何把链表当作范围的容器”!
CP.23:将连结线程看作范围化的容器
Reason(原因)
为了维护指针安全和避免泄漏,我们需要考虑athread使用了哪些指针。如果athreadjoins,我们可以安全地将指针传递给thread及其封闭范围内的对象。
为了保证指针的安全和避免泄漏,我们需要考虑线程使用了哪些指针。如果有线程连接,我们可以在线程范围内安全地传递对象的指针并关闭范围。
Example(示例)
无效f(int* p)
{
//.
* p=99
//.
}
int glob=33
void some_fct(int* p)
{
int x=77
joining_thread t0(f,x);//好的
joining_thread t1(f,p);//好的
join _ thread T2(f,glob);//好的
auto q=make _ uniqueint(99);
joining_thread t3(f,q . get());//好的
//.
} gsl:joinsing _ thread是std:thread,它添加了调用join的析构函数,不能被解除。通过“OK”这个词,我们想表达的是,只要使用指针的线程存在,指针所指向的对象就会保持在作用域内(并且保持可用)。这里,线程是并发的事实不会影响生命周期或所有权问题;一个线程可以被认为是一个由somt_ft调用的函数对象。
Enforcement(实施建议)
确保joining_threads不要超过()。之后,通常的生存期和所有权(对于本地对象)强制适用。
确认链接的线程不会被分离。然后确认应用了通常的生命周期和所有权原则(对于本地对象)。
感谢阅读。这就是“C如何将链接线程视为范围容器”的内容。学习完这篇文章,相信你对C如何将链接线程视为作用域容器有了更深的理解,具体用法还需要实践验证。在这里,边肖将为您推送更多关于知识点的文章,敬请关注!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/116969.html