美文网首页
什么是线程

什么是线程

作者: IvanHung | 来源:发表于2016-12-03 18:58 被阅读18次

    1、什么是线程?

    线程是程序执行的最小单位,CPU把所有的时间分成若干个小片,把每一个小片不断的分给不同的线程来执行,保证每个程序都有机会执行,不会有程序一直霸占CPU。

    2、什么是多线程?

    多线程是一种并发执行的技术,主要目的是最大化的利用各种资源,提高程序整体性能。另外,在线程之间设计缓冲区,可以很好地对线程进行解耦。

    多线程有两层含义,第一层是开启多个线程做不同的事情,这种主要是为了并发同时做很多事情。第二层是开启多个线程做同一个事情,这种是为了效率更高。

    在我们计算机中,CPU、磁盘、显卡、网络带宽这些都是资源。比如拷贝文件的时候,主要在使用磁盘资源,这时候其他资源是闲置的,如果使用多线程,就可以把CPU、网络带宽资源利用起来,做到一边拷贝文件,一边打LOL。不过在有些场景里,资源是单一的(比如单核CPU计算圆周率),这时候使用多线程是没有意义的,反而会因为线程之间的切换造成额外的开销。

    如果程序有响应迟钝、效率低、吞吐不高的情况,可以考虑使用多线程。

    3、操作系统的多线程

    在一个GUI的系统中,比如Android、iOS、Windows等等,操作系统本身的设计就是多线程的。其中至少有两个线程,一个叫主线程,另一个叫工作者线程。

    主线程一般是用来绘制界面,响应用户操作的(比如触摸、滑动、点击),这个线程最好不被应用程序所打扰,因为它最好保持很高的实时性。

    工作者线程,是用来运算或者完成逻辑的,它对用户界面和操作不负责响应,默默的做计算,做逻辑,并将一些结果反馈给主线程,从而展示不同的用户界面和逻辑。

    4、APP的多线程

    任何一个app,在启动的时候都做了大量的事情,都是多线程的,有的线程可能在加载新模块,有的线程在做上报,有的线程在收集lbs信息等。

    多线程也有弊端,就是多个线程的时序不好控制,多个线程之间的共享变量控制难度比较大,多线程通知机制复杂,且调试困难。

    5、什么是线程池?

    把一个东西「池化」是一种很典型的复用思想,它的核心就是,这些东西如果可以重复使用的话,就尽量不要销毁它。线程池就是线程的集合,为某些任务分类一定的线程数量,大量请求的时候排队等候,避免操作系统占用太多资源。

    类似的,还有对象池、连接池等等。

    ——部分内容整理自网络——

    相关文章

      网友评论

          本文标题:什么是线程

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