什么是多线程

作者: GryllsNSTimer | 来源:发表于2015-12-20 22:20 被阅读161次
1.先了解什么是进程和什么是线程
1.1什么是进程(process)
  • 进程是指在系统中正在运行的一个应用程序

  • 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内

  • 比如同时打开迅雷、Xcode,系统就会分别启动2个进程

两个进程.png
1.2什么是线程(thread)
  • 1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程)
  • 一个进程(程序)的所有任务都在线程中执行
  • 比如使用酷狗播放音乐、使用迅雷下载电影,都需要在线程中执行
线程.png
  • 线程的串行
  • 1个线程中任务的执行是串行的。
  • 如果要在1个线程中执行多个任务,那么只能一个一个地按顺序执行这些任务。
  • 也就是说,在同一时间内,1个线程只能执行1个任务。
  • 比如在1个线程中下载3个文件(分别是文件A、文件B、文件C)。
线程的串行.png
2.什么是多线程(multithread)
2.1什么是多线程
    • 1个进程中可以开启多条线程,每条线程可以并行(同时)执行不同的任务
  • 进程à车间,线程 à车间工人

  • 多线程技术可以提高程序的执行效率

  • 比如同时开启3条线程分别下载3个文件(分别是文件A、文件B、文件C)

三条线程.png
2.2多线程的原理
  • 多线程的原理

  • 同一时间,CPU只能处理1条线程,只有1条线程在工作(执行)

  • 多线程并发(同时)执行,其实是CPU快速地在多条线程之间调度(切换)

  • 如果CPU调度线程的时间足够快,就造成了多线程并发执行的假象

  • 思考题:如果线程非常非常多,会发生什么情况??

    • CPU会在N多线程之间调度,CPU会累死,消耗大量的CPU资源
    • 每条线程被调度执行的频次会降低(线程的执行效率降低)
2.3多线程的潜在优势
  • 多个线程可以 高应用程序的感知响应。
  • 多个线程可以 高应用程序在多核系统上的实时性能。
2.4多线程潜在问题
  • 应用程序内拥有多个可执行路径,会给你的代码增加更多的复杂性。
  • 因为应用程序内的多个线程共享内存空间,它们访问相同的数据结构。如果两个线程试图同时处理相同的数据结构,一个线程有可能覆盖另外线程的改动导致破坏该数据结构。

相关文章

  • 节后面试必备:多线程和高并发介绍

    前言一、什么是多线程?1.多线程介绍 2.多线程实现原理? 3.白话文解释多线程 4.多线程存在的问题 二、什么是...

  • IOS2

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

  • 多线程笔记1-线程的共享与协作

    什么是多线程的共享? 什么是多线程之间的协作? 多线程的共享:是指多个线程访问同一个对象。 多线程的协作是指:当A...

  • iOS 多线程简介

    一.本文介绍点 1.为什么要学习多线程2.什么是多线程3.多线程的原理4.多线程的优缺点5.多线程的应用6.多线程...

  • 《莫烦Python3基础教程》学习笔记3

    一.Threading 多线程 1.什么是多线程 多线程是加速程序计算的有效方式,Python的多线程模块thre...

  • python多线程

    python多线程 什么是多线程 多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并...

  • 多线程网络

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

  • iOS面试题锦集(一)——多线程网络

    1. 多线程的底层实现? 首先搞清楚什么是线程、什么是多线程; Mach(国际发音:[mʌk])是第一个以多线程方...

  • 什么是多线程

    1.先了解什么是进程和什么是线程 1.1什么是进程(process) 进程是指在系统中正在运行的一个应用程序 每个...

  • 什么是多线程?

    什么是多线程? 多线程的实现原理:事实上,同一时间内单核的CPU只能执行一个线程,多线程是CPU快速的在多个线程之...

网友评论

    本文标题:什么是多线程

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