美文网首页iOS技术文章
单线程、多线程的区别!☀️

单线程、多线程的区别!☀️

作者: LeaderBiao | 来源:发表于2016-06-25 17:22 被阅读80次
  • 版权声明:本文为博主原创文章,未经博主允许不得转载。

程序、进程、线程

程序:由源代码生成的可执行应用。 (例如:QQ.app)

进程:一个正在运行的程序可以看做一个进程,(例如:正在运行的QQ警示一个劲曾),进程拥有独立运行所需要的全部资源

线程:程序中独立运行的代码段。(例如:接收QQ消息的代码)

一个进程是由一或多个线程组成,进程只负责资源的调度和分配,线程才是程序真正的执行单元,负责代码的执行。

单线程

每个正在运行的程序(即进程),至少包括一个线程,这个线程叫主线程

主线程在程序启动时被创建,用于执行main函数

只有一个主线程的程序,称作单线程程序

主线程负责执行程序的所有代码(UI展现以及刷新,网络请求,本地存储等等)。这些代码只能顺序执行,无法并发执行

多线程

拥有多个线程的程序,称作多线程程序。

iOS允许用户自己开辟新的线程,相对于主线程来讲,这些线程,称为子线程

可以根据需要开辟若干子线程

子线程和主线程都是独立的运行单元,各自的执行互不影响,因此能够并发执行

单线程、多线程的区别

单线程程序:只有一个线程,代码顺序执行,容易出现代码阻塞(页面假死)

多线程程序:有多个线程,线程间独立运行,能有效地避免代码阻塞,并且提高程序的运行性能

  • 注意:iOS中关于UI的添加和刷新必须在主线程中操作
  • iOS平台下得多线程
  • iOS多线程 实现种类
  • NSThread
  • NSOperationQueue
  • NSObject
  • GCD
  • NSThread
NSThread是一个轻量级的多线程,它有以下两种创建方法:
  • 注意:
  • 在多线程方法中,需要添加自动释放池
  • 在应用程序打开的时候,系统会自动为主线程创建一个自动释放池
  • 我们手动创建的子线程需要我们手动添加自动释放池.

相关文章

  • 2018-11-16

    单线程和多线程区别 单线程设置变量举例${sign} 单线程设置变量举例${__property(sign)}

  • 多线程 webworker

    多线程——webWorker1、单线程与多线程区别:单线程:前一个操作没做完,后一个没办法开始多线程:可以同时进行...

  • 单线程多线程系统效率差别

    单线程和多线程 单线程和多线程有什么区别呢?有人说过比较形象生动的比喻,单线程就像你在地铁站刷卡,突然电话来了,你...

  • 7 异步编程、回调地狱详解

    1、单线程和多线程的区别: 单线程:执行效率低(计算能力差),但不会有线程通信的问题,前端使用较多,例如js;[单...

  • Java中多线程

    一、概述 1、多线程和单线程 多线程即一个程序中有多个线程在同时执行,单线程和多线程: 单线程:若有多个任务,只有...

  • 2020最新大厂Redis面试专题

    redis 和 memcached 什么区别?为什么高并发下有时单线程的 redis 比多线程的 memcache...

  • 单线程、多线程的区别!☀️

    版权声明:本文为博主原创文章,未经博主允许不得转载。 程序、进程、线程 程序:由源代码生成的可执行应用。 (例如:...

  • Collection集合类相关知识

    1.HashMap和HashTable的区别 HashMap不是线程安全的,适合在单线程的环境下使用,想要在多线程...

  • 16、redis的线程模型?为啥单线程还能有很高的效率?

    1、面试题 redis和memcached有什么区别?redis的线程模型是什么?为什么单线程的redis比多线程...

  • python3 并发编程

    线程和进程区别:需要增加 什么时候用线程、什么时候用进程 多线程 threading 构造函数 实例:和单线程加入...

网友评论

    本文标题:单线程、多线程的区别!☀️

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