为什么要用多线程

Posted 立中宵

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么要用多线程相关的知识,希望对你有一定的参考价值。

1. 先讨论一下CApp类的实质。App就是一个用户界面线程。

1.1

App对象使一个线程具有了处理消息的能力,而线程本身并没有这个能力,(了解这一点的目的在于弄清楚线程消息的概念。)拥有这种能力的线程也就是用户界面线程。

1.2

了解了消息机制的原理以后可以对我们编程提供一些帮助,比如,App主线程中不应该执行耗时很长的代码(比如循环,或者I/O操作,或者运算量很大的代码),这样才不会阻塞消息循环,导致界面“死掉”。 解决这个问题的方案就是创建子(辅助)线程来完成这些任务

2. 这里关于父子线程的行为控制好复杂

第2个问题:如何更好的使用多线程

首先是代码结构的问题。我们可以将子线程所要完成的功能全部在一个线程函数里实现,这显然在大多数时候是不合理的,第二种方法是通过父线程传递来的对象指针,调用该对象类的成员函数来实现所需的功能。这里引发新的问题,需不需要单独创建一个类来包装这些函数,还是将这些函数写在父线程的类中(包括辅助线程处理函数自己)。这两种方法从本质上来说似乎没有什么差别。后者的话,当我们需要改变子线程的行为时,只需要改变自身类成员变量就可以了,但是结构显得有些混乱。

以上是关于为什么要用多线程的主要内容,如果未能解决你的问题,请参考以下文章

多线程的前世今生

VC中怎么用多线程画图,不显示画图过程啊,我是新手

多线程编程——ANR

多线程:到底什么时候该用多线程

多线程:到底什么时候该用多线程

多线程必须用到的线程池(什么时候用多线程)