多线程、并发执行

    // 1.创建一条线程;
    NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(longTimeOperation) object:nil];
    // 2.启动线程; 调用start方法,告诉CPU线程准备就绪;线程被 CPU 调度之后会自动执行@selector()中的方法;
    [thread start];

    2. 线程

    应用程序中的代码是由线程来执行的!
    一个进程至少包含一条线程!
    在一个应用程序启动之后,会默认开启一条线程 ----> 主线程!
    主线程之外的线程---->子线程

    问题:线程是如何执行应用程序中的代码的?

    串行执行:
    在线程中的代码是按顺序执行的!同一时间内,只能有一个代码块执行!


    3. 进程

    就是在系统中'正在运行'的应用程序!

    进程为应用程序开辟独立的内存空间;


并发执行:

    1. 问题又来了! 为什么开启一条新线程之后就能解决卡住主线程这个问题了呢?

    答: 因为线程和线程之间是并发执行(同时执行)!

    2.多线程

    进程是由许多条线程组成的!
    一个进程可以包含很多条线程,每条线程都可以执行不同的代码!

    并发执行(同时执行):
    线程和线程之间是同时执行的!  ----> 提高程序的运行效率!


    为什么多条线程之间可以并发(同时)执行呢?

    线程是由 CPU 来执行的,同一时间只能有一条线程被执行!CPU在多条线程之间快速的切换!
    由于 CPU 的执行速度非常快!就给我们造成了多条线程并发执行的'假象'  ------- 多线程实现原理!


    既然多线程这么爽, 线程是不是越多越好呢?

    <1> 开启线程需要消耗一定的内存(默认情况下,线程占用 512KB 的栈区空间);
    <2> 会使应用程序增加很多代码!代码变多之后,程序复杂性就会提高!
    <3> CPU 在多条线程之间来回切换!线程越多, CPU就越累!

    建议: 在移动应用的开发中; 一般只开3~5条线程!


在开发中:用户体验

    在 iOS 开发中,多线程开发的知识点:// 只有知道了这些知识点,大家才能进行多线程的开发!

    1. 主线程又称为 UI 线程! 主线程的作用: // 有关UI操作,建议都放在主线程中执行!

    <1> 更新UI/ 刷新UI界面;
    <2> 处理 UI 事件(点击/拖拽/滚动等)

    2. 耗时操作会卡住主线程!,影响 UI 操作的流畅度!给用户一种'卡顿'的坏体验!

    注意点:别将耗时操作放在主线程中执行!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值