美文网首页
在主线程上可以处理的事情,为什么要开启子线程去处理

在主线程上可以处理的事情,为什么要开启子线程去处理

作者: 鼾声鼾语 | 来源:发表于2020-04-03 09:47 被阅读0次

1,一般情况我们会将耗时的操作放到子线程中去,
原因是耗时的复杂操作如果一旦放到主线程上去的话,会导致主线程卡死等情况的发生,我们一般会在主线程的界面按钮事件中开启一个子线程,这样的话将耗时的操作放到子线程中去,我们就可以在主界面做其他的操作。通常情况下,我们也不会在主界面进行其他的操作了,也就是可能更新一下进度等。
但是如果不将复杂操作放到子线程中去,主界面有可能出现卡死等情况的发生,手误碰到主界面等情况下,会出现卡死。

2,但是需要注意的是,当子线程在运行的时候,我们返回了主界面,进入到别的界面,如果点击了一个按钮,这个时候就会重新创建一个子线程。尤其是在故障诊断等报文操作的时候,会出现报文回复错乱的情况,通常我们我们基本将界面限制在当前功能界面下,避免出现这种问题,科学的做法是,我们需要在返回主界面的时候,关闭当前的子线程,这样更加的科学。

3,现在碰到一个问题,如果发送数据为多帧,是不是需要新开启一个发送线程,同时开通一个接受线程,发送线程发送数据后等待接受线程响应,然后再继续发送。有待于确认。
如果将发送放到主线程,只建立一个子线程的话,这样应该也行,两个方案需要确认。

相关文章

  • 无标题文章

    --如何处理android多线程安全不要堵塞UI线程,不在主线程中做耗时操作的处理,可以开启子线程去执行耗时操作 ...

  • 在主线程上可以处理的事情,为什么要开启子线程去处理

    1,一般情况我们会将耗时的操作放到子线程中去,原因是耗时的复杂操作如果一旦放到主线程上去的话,会导致主线程卡死等情...

  • Handler使用

    主要用于异步处理: 存在于线程中开启子线程:异步处理 主要接受子线程发送的数据,并用此数据配合主线程更新UI ··...

  • iOS 数据源同步问题解决办法

    当我们开启子线程处理数据源的时候,主线程的操作并没有记录在子线程中。这样就会导致子线程处理完数据返回主线程刷新UI...

  • 在并发编程中线程池的使用

    在并发编程中线程池的使用 一、为什么要使用线程池 当需要处理的任务较少时,我们可以自己创建线程去处理,但在高并发...

  • iOS 子线程用runloop保活的一个方案

    在我们需要频繁地开启子线程执行操作的时候,我们可以采用开启子线程runloop的方式保活子线程,这样避免频繁创建线...

  • Android线程

    Android线程概述 线程分为主线程和子线程,主线程主要处理和界面相关的事情,子线程则往往用于处理耗时操作。线程...

  • Android 多线程(一)

    简介 1. 线程分类 主线程(UI线程) : 处理和界面相关的事情. 子线程 : 处理耗时操作. Android中...

  • Android中采用线程池进行线程的管理

    当遇到耗时操作,比如网络请求,频繁更新UI界面,这时就需要开启子线程,至于为什么开启子线程,无非防止阻塞UI线程,...

  • iOS线程安全问题

    多线程 线程与队列区别 程序分为主线程与子线程, 主线程主要用来更新队列,而主线程所有要处理的事务都放在主队列,主...

网友评论

      本文标题:在主线程上可以处理的事情,为什么要开启子线程去处理

      本文链接:https://www.haomeiwen.com/subject/ugbcphtx.html