HOME 首页
SERVICE 服务产品
XINMEITI 新媒体代运营
CASE 服务案例
NEWS 热点资讯
ABOUT 关于我们
CONTACT 联系我们
创意岭
让品牌有温度、有情感
专注品牌策划15年

    detach和dispatch

    发布时间:2023-03-19 05:14:03     稿源: 创意岭    阅读: 82        问大家

    大家好!今天让创意岭的小编来大家介绍下关于detach和dispatch的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。

    开始之前先推荐一个非常厉害的Ai人工智能工具,一键生成原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等

    只需要输入关键词,就能返回你想要的内容,越精准,写出的就越详细,有微信小程序端、在线网页版、PC客户端

    官网:https://ai.de1919.com

    本文目录:

    detach和dispatch

    一、divide和detach都有分开的意思 我们该怎么理解它们呢

    分离(Detach):用于将群组中的个别对象从群组中分离出去。divide划分;除;分开;使产生分歧

    二、remove和detach的区别

    remove:(绑定事件被移除)

    remove是不会把匹配的元素从jquery对象上删除,所以在后面如果再添加该元素的话是可以继续使用的,但是该元素绑定的事件、附加的数据都会被移出掉,添加元素后也不能再拥有

    detach:(绑定事件不会被移除)

    detach是不会把沛沛的元素从jquery对象上删除,所以在后面添加该元素的话是可以继续使用的,同样的该元素绑定的事件和附加的元素都没有被删除,当元素添加回来之后,绑定的事件是可以继续使用的,同理还有附加的数据

    区别:

    都是移出dom结构,但是绑定的事件和附件的数据会有差别,这里要区别对待。

    三、android remove和detach的区别

    有如下的区别:

    可以看到Fragment比Activity多了几个额外的生命周期回调函数:

    onAttach(Activity);//当Activity与Fragment发生关联时调用

    onCreateView(LayoutInflater,ViewGroup,Bundle);//创建该Fragment的视图

    onActivityCreate(bundle);//当Activity的onCreate();方法返回时调用

    onDestoryView();//与onCreateView相对应,当改Fragment被移除时调用

    onDetach();//与onAttach()相对应,当Fragment与Activity的关联被取消时调用

    注意:除了onCreateView,其他的所有方法如果你重写了,必须调用父类对于该方法的实现。

    四、C++中的std:thread的join函数与detach函数有什么区别

    C++中的thread对象通常来说表达了执行的线程(thread of execution),这是一个OS或者平台的概念。

    当thread::join()函数被调用后,调用它的线程会被block,直到线程的执行被完成。基本上,这是一种可以用来知道一个线程已结束的机制。当thread::join()返回时,OS的执行的线程已经完成,C++线程对象可以被销毁。

    当thread::detach()函数被调用后,执行的线程从线程对象中被分离,已不再被一个线程对象所表达--这是两个独立的事情。C++线程对象可以被销毁,同时OS执行的线程可以继续。如果程序想要知道执行的线程何时结束,就需要一些其它的机制。join()函数在那个thread对象上不能再被调用,因为它已经不再和一个执行的线程相关联。

    去销毁一个仍然可以“joinable”的C++线程对象会被认为是一种错误。为了销毁一个C++线程对象,约么join()函数需要被调用(并结束),要么detach()函数被调用。如果一个C++线程对象当销毁时仍然可以被join,异常会被抛出。

    C++线程对象不被表达为执行的线程的其它的情况(也就是unjoinable):

    默认构造的线程对象不表达为执行的线程,所以是unjoinable。

    被移开的线程将不表达为执行的线程,所以是unjoinable。

    在std::thread的析构函数中,std::terminate会被调用如果:

    线程没有被Joined(用t.join())

    线程也没有被detached(用t.detach())

    因此,你应该在执行流程到析构函数前总是要么join,要么detach一个线程。

    当一个程序终止时(比如main返回),剩下的在后台的detached线程执行不会再等待;相反它们的执行会被挂起并且它们的本地线程对象会被销毁。

    关键地,这意味着这些线程的栈不是完好无损的,因此一些析构函数不会被执行。依赖于这些行为,一些析构函数假象会被承担,这可能是一种坏情形,好像程序已经Crash或者已经被kill。希望OS会释放加在这些文件上的锁。Depending

    on the actions those destructors were supposed to undertake, this might

    be as bad a situation as

    if the program had crashed or had been killed. Hopefully the OS will

    release the locks on files, etc... but you could have corrupted shared

    memory, half-written files, and the like.

    所以,你应该使用join还是detached?

    使用join

    除非你需要更灵活并且想要独立地提供一种同步机制来等待线程完成,在这种情况下你应该使用detach

    以上就是关于detach和dispatch相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。


    推荐阅读:

    vscode安装导入本地插件包(vscode导入已下载好的插件包)

    华为retaildemo(华为retaildemo下载安装教程)

    campus-wide(campus-wide discussion)

    包头专业住宅景观设计(包头专业住宅景观设计师招聘)

    拼多多详情页最佳尺寸(拼多多详情页最佳尺寸是多大)