iOS之多线程简介

  1. 定义:
    网络

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

算机因有硬件支持而可以在同一时间执行多于一个线程,进而提高总体处理性能。并发

      在一个程序中,这些独立运行的程序片断叫作“线程”(Thread).函数

2. 线程和进程性能

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

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

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

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

3. 多线程的优缺点:内存

    优势:

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

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

示处理的进度。

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

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

     缺点:

    《1 若是有大量的线程,会影响性能,由于操做系统须要在它们之间切换。

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

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

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

    《5 一般块模型数据是在多个线程间共享的,须要防止线程死锁状况的发生。

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

相关文章
相关标签/搜索