zoukankan      html  css  js  c++  java
  • 单线程、多线程的区别

    程序、进程、线程

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

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

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

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

     单线程

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

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

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

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

    多线程

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

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

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

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

    单线程、多线程的区别

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

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

    注意:iOS中关于UI的添加和刷新必须在主线程中操作

    iOS平台下得多线程

    iOS多线程 实现种类

    NSThread

    NSOperationQueue

    NSObject

    GCD

    NSThread

    NSThread是一个轻量级的多线程,它有以下两种创建方法:

    注意:

    在多线程方法中,需要添加自动释放池

    在应用程序打开的时候,系统会自动为主线程创建一个自动释放池

    我们手动创建的子线程需要我们手动添加自动释放池

  • 相关阅读:
    洛谷 P2023 BZOJ 1798 [AHOI2009]维护序列
    洛谷 P1640 BZOJ 1854 [SCOI2010]连续攻击游戏
    洛谷 P4300 BZOJ 1266 [AHOI2006]上学路线route
    洛谷 P1886 滑动窗口
    洛谷 P1063 能量项链
    洛谷 P1156 垃圾陷阱
    洛谷 P1854 花店橱窗布置
    洛谷 P3800 Power收集
    洛谷 P2285 BZOJ 1207 [HNOI2004]打鼹鼠
    day31
  • 原文地址:https://www.cnblogs.com/496668219long/p/4517911.html
Copyright © 2011-2022 走看看