iOS之多线程简介

  1. 定义:

    多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计

算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。

      在一个程序中,这些独立运行的程序片段叫做“线程”(Thread).

2. 线程和进程

     每个在系统上运行的程序都是一个进程。每个进程包括一到多个线程。进程也可能是整个程序或者是部分程序的动态执行。线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行,也可以理解为代码运行的上下文,所以线程

基本上轻量的进程,它负责单个程序里执行多任务,通常有操作系统负责多个线程的调度。

   线程和进程的区别是:子进程和父进程哟不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行

堆栈 和程序计数器为其执行上下文,多线程主要是为了节约CPU时间    

3. 多线程的优缺点:

    优点:

   《1 使用多线程可以把占据时间长的程序中的任务放在后台去处理。

    《2 用户界面可以更加吸引人,比如用户在点击了一个按钮去触发某些时间的处理,可以弹出一个进度条来显

示处理的进度。

    《3 程序的运行速度可能加快。

    《4 在一些等待的任务上实现如用户的输入,文件读写和网络收发数据,线程就比较有用。

     缺点:

    《1 如果有大量的线程,会影响性能,因为操作系统需要在它们之间切换。

    《2 更多的线程则需要更多的内存空间

    《3 线程可能给程序带来更多的bug

    《4 线程终止需要考虑其对程序运行的影响

    《5 通常块模型数据是在多个线程间共享的,需要防止线程死锁情况的发生。

       iPhone中的线程应用并不是无节制的,官方给出的资料显示,iPhone OS下的主线程的堆栈大小是1M,第二个线程开始就是512KB,并且该值不能通过编译器开关或线程API函数来更改,只有主线程有直接修改UI的能力   

转载于:https://my.oschina.net/u/2322034/blog/412435

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值