一:多线程--多线程简单介绍

一、进程和线程

  1.什么是进程:进程是指在系统中正在运行的一个应用程序

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

  2.什么是线程

    1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程)

    线程是进程的基本执行单元,一个进程(程序)的所有任务都在线程中执行

二、多线程

  1.什么是多线程:1个进程中可以开启多条线程,每条线程可以并行(同时)执行不同的任务

  2.多线程的原理

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

    多线程并发(同时)执行,其实是CPU快速地在多条线程之间调度(切换)
    如果CPU调度线程的时间足够快,就造成了多线程并发执行的假象
  3.思考:如果线程非常非常多,会发生什么情况?
    CPU会在N多线程之间调度,CPU会累死,消耗大量的CPU资源
    每条线程被调度执行的频次会降低(线程的执行效率降低)

  4.多线程的优缺点

  多线程的优点

    1.能适当提高程序的执行效率

    2.能适当提高资源利用率(CPU、内存利用率)

  多线程的缺点

    1.开启线程需要占用一定的内存空间(默认情况下,主线程占用1M,子线程占用512KB),如果开启大量的线程,会占用大量的内存空间,降低程序的性能

    2.线程越多,CPU在调度线程上的开销就越大

    3.程序设计更加复杂:比如线程之间的通信、多线程的数据共享

  5.多线程在iOS开发中的应用

    1>主线程:一个iOS程序运行后,默认会开启1条线程,称为“主线程”或“UI线程”

    2>主线程的主要作用:

      显示\刷新UI界面

      处理UI事件(比如点击事件、滚动事件、拖拽事件等)

    3>主线程的使用注意:

      别将比较耗时的操作放到主线程中。

      耗时操作会卡住主线程,严重影响UI的流畅度,给用户一种“卡”的坏体验

  6.代码示例 

    

 

2 //  YYViewController.m
 3 //  01-阻塞主线程
 4 //
 5 //  Created by apple on 14-6-23.
 6 //  Copyright (c) 2014年 itcase. All rights reserved.
 7 //
 8
 9 #import "YYViewController.h"
10
11 @interface YYViewController ()
12 - (IBAction)btnClick;
13 @end
14
15
16 @implementation YYViewController
17
18
19 - (void)viewDidLoad
20 {
21     [super viewDidLoad];
22 }
23
24
25 //按钮的点击事件
26 - (IBAction)btnClick {
27     //1.获取当前线程
28     NSThread *current=[NSThread currentThread];
29     //2.使用for循环执行一些耗时操作
30     for (int i=0; i<10000; i++) {
31         //3.输出线程
32         NSLog(@"btnClick---%d---%@",i,current);
33     }
34 }
35
36 @end
时间: 2024-12-17 04:12:02

一:多线程--多线程简单介绍的相关文章

python进阶之多线程(简单介绍协程)

多线程 线程:实现多任务的另一种方式 一个进程中,也经常需要同时做多件事,就需要同时运行多个'子任务',这些子任务,就是线程 线程又被称为轻量级进程(lightweight process),是更小的执行单元 一个进程可拥有多个并行的(concurrent)线程,当中每一个线程,共享当前进程的资源 一个进程中的线程共享相同的内存单元/内存地址空间可以访问相同的变量和对象,而且它们从同一堆中分配对象通信.数据交换.同步操作 由于线程间的通信是在同一地址空间上进行的,所以不需要额外的通信机制,这就使

iOS开发多线程篇--多线程的简单介绍

一.进程和线程 1.什么是进程 进程是指在系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 比如同时打开QQ.Xcode,系统就会分别启动2个进程 通过“活动监视器”可以查看Mac系统中所开启的进程 2.什么是线程 1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程 线程是进程的基本执行单元,一个进程(程序)的所有任务都在线程中执行 比如使用酷狗播放音乐.使用迅雷下载电影,都需要在线程中执行 3.线程的串行 1个线程中任务的执行是串行的

iOS设计中多线程的简单介绍

1.什么是多线程,表现方式有哪些,都有哪些优缺点 进程是程序的实体 进程是程序的一次执行,进程是线程的容器 线程是轻量级进程,是程序执行流的最小单位 多线程的概念: 单个程序同时运行多个线程完成不同的任务,称为多线程,是指从软件或者硬件实现多个线程并发执行的技术 为什么使用多线程: 节约CPU时间,避免程序卡死 多线程技术是防止主线程堵塞和增加运行效率的最佳方法 怎样实现多线程(表现方式): NSThread:是三种方法中轻量级,但需要管理线程的生命周期,同步,加锁问题,会导致一定的性能开销 N

四:多线程--NSOperation简单介绍

一.NSOperation简介 1.NSOperation的作?:配合使用NSOperation和NSOperationQueue也能实现多线程编程 NSOperation和NSOperationQueue实现多线程的具体步骤: (1)先将需要执行的操作封装到一个NSOperation对象中 (2)然后将NSOperation对象添加到NSOperationQueue中 (3)系统会?动将NSOperationQueue中的NSOperation取出来 (4)将取出的NSOperation封装的

iOS开发多线程篇 09 —NSOperation简单介绍

iOS开发多线程篇—NSOperation简单介绍 一.NSOperation简介 1.简单说明 NSOperation的作?:配合使用NSOperation和NSOperationQueue也能实现多线程编程 NSOperation和NSOperationQueue实现多线程的具体步骤: (1)先将需要执行的操作封装到一个NSOperation对象中 (2)然后将NSOperation对象添加到NSOperationQueue中 (3)系统会?动将NSOperationQueue中的NSOpe

iOS开发多线程篇—多线程简单介绍

iOS开发多线程篇—多线程简单介绍 一.进程和线程 1.什么是进程 进程是指在系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 比如同时打开QQ.Xcode,系统就会分别启动2个进程 通过“活动监视器”可以查看Mac系统中所开启的进程 2.什么是线程 1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程) 线程是进程的基本执行单元,一个进程(程序)的所有任务都在线程中执行 比如使用酷狗播放音乐.使用迅雷下载电影,都需要在线程中执行 3.线程

iOS开发多线程篇—NSOperation简单介绍

iOS开发多线程篇—NSOperation简单介绍 一.NSOperation简介 1.简单说明 NSOperation的作?:配合使用NSOperation和NSOperationQueue也能实现多线程编程 NSOperation和NSOperationQueue实现多线程的具体步骤: (1)先将需要执行的操作封装到一个NSOperation对象中 (2)然后将NSOperation对象添加到NSOperationQueue中 (3)系统会?动将NSOperationQueue中的NSOpe

多进程和多线程的架构的简单介绍

多进程和多线程的架构的简单介绍 多线程的意义为帮助你决定开发软件时采用多进程架构还是多线程架构.不了解这种区别会在大型软件的设计开发过程中造成困扰. Oracle的Unix/Linux版本采用多进程架构,不同的功能模块由不同的进程负责,Windows版本采用单进程多线程架构,所有的模块所在线程处在同一个进程当中.我们来看一下区别:1.进程管理.Oracle某个模块挂起了,没有响应,万般无奈你要重起这个模块,Unix平台只要重起这个模块所在的那个进程就可以了,其它进程保持运行,而Windows平台

OS开发多线程篇—NSOperation简单介绍

iOS开发多线程篇—NSOperation简单介绍 一.NSOperation简介 1.简单说明 NSOperation的作?:配合使用NSOperation和NSOperationQueue也能实现多线程编程 NSOperation和NSOperationQueue实现多线程的具体步骤: (1)先将需要执行的操作封装到一个NSOperation对象中 (2)然后将NSOperation对象添加到NSOperationQueue中 (3)系统会?动将NSOperationQueue中的NSOpe

iOS多线程技术—多线程简单介绍

iOS多线程技术—多线程简单介绍 一.进程和线程 1.什么是进程 进程是指在系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 比如同时打开QQ.Xcode,系统就会分别启动2个进程 通过“活动监视器”可以查看Mac系统中所开启的进程 2.什么是线程 1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程) 线程是进程的基本执行单元,一个进程(程序)的所有任务都在线程中执行 比如使用酷狗播放音乐.使用迅雷下载电影,都需要在线程中执行 3.线程的