美文网首页
什么是线程

什么是线程

作者: 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、什么是线程池?

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

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

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

相关文章

  • 线程的概念

    什么是线程?线程用来做什么?怎样实现线程?

  • 什么是线程

    1、什么是线程? 线程是程序执行的最小单位,CPU把所有的时间分成若干个小片,把每一个小片不断的分给不同的线程来执...

  • 什么是线程

    什么是线程?线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。...

  • 什么是线程

    线程,有时被称作轻量级进程,是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针,寄存器集合和堆栈组成。...

  • Thread 多线程

    (不介绍 什么是线程、线程和进程的区别、多线程有什么用、什么是串行、什么是并行) 线程方案 Pthreads 基于...

  • 多线程基本概念

    一、什么进程 二、什么线程 三、什么是多线程 四、主线程和子线程 主线程: 子线程: 多线程的优缺点优点: 缺点 ...

  • java----线程池

    什么是线程池 为什么要使用线程池 线程池的处理逻辑 如何使用线程池 如何合理配置线程池的大小 结语 什么是线程池 ...

  • 多线程网络

    1.多线程的底层实现 1> 首先搞清楚什么是线程,什么是多线程 说起多线程,那么就不得不说什么是线程,而说起线程,...

  • 2018-09-19 守护线程与非守护线程

    什么是守护线程、非守护线程? 什么是守护线程,和main有关。 用户线程(非守护线程): 守护线程,有一个特征,和...

  • IOS2

    一、进程和线程:什么是进程? 什么是线程? 多线程原理? 二、多线程 iOS中多线程实现方案: 1.pthread...

网友评论

      本文标题:什么是线程

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