多线程

Posted 策码扬编

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多线程相关的知识,希望对你有一定的参考价值。

一 多线程基础

 1.进程:进程就是系统中正在运行的应用程序.每个进程是相互独立的且都运行在各自受保护的运行空间内.  

  比如同时打开迅雷、Xcode,系统就会分别启动2个进程.

  2.线程:进程在执行任务是必须开辟线程,进程中的所有任务都在线程中进行.一个进程可以开辟一条线程,也可以开辟多条线程.

  比如酷狗音乐这个进程在执行播放音乐这个线程的同时,还在执行下载音乐这条线线程.

二 线程的串行

  在同一时间一个线程只能执行一个任务,如果一个线程有多条任务要执行就得按先后顺序执行,一个线程不能同时进行多个任务.

三 多线程

  一个进程可以开辟多条线程,每条线程可以执行不同的任务,看上去是每条相称在同时进行,其实是CPU在不同线程间快速的切换.

  CPU在同一时间只能执行一条线程.

  多线程技术可以提高执行程序的效率,提高资源利用率.

  但是在创建线程耗内存耗时间,且如果线程开辟太多也会降低程序的性能,而且多线程的程序设计难度也更大.

四 多线程在ios开发中的应用

  一个iOS程序运行后,会自动开辟主线程(又叫UI线程).

  主线程主要用来显示和刷新UI界面以及处理UI事件.

  主线程使用过程中的注意事项:主线程处理耗时操作时会有卡死的感觉,影响UI的流畅度,因此不可将耗时较多的操作放在主线程中.

  主线程只用来显示和刷新UI界面以及处理UI事件.

五 多线程的实现方案

  1.pthread 几乎不用

  2.NSThread 几乎不用

  3.GCD 常使用

    GCD基于C语言,自动管理现成的生命周期,可从分利用多喝处理器来处理线程. 

  4.NSOperation 常使用

    NSOperation基于GCD自动管理线程的生命周期.

 

以上是关于多线程的主要内容,如果未能解决你的问题,请参考以下文章

什么是多线程,多进程?

多线程和多进程模式有啥区别

多线程Java多线程学习笔记 | 多线程基础知识

java中啥叫做线程?啥叫多线程?多线程的特点是啥

c++ 多线程与c多线程有啥区别?

IOS多线程安全(线程锁)