多线程基础编程-001-NSThread

1.什么是进程

进程是在系统中正在运行的一个应用程序。每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内。

比如同时打开迅雷、Xcode,系统就会分别启动2个进程。通过活动监视器可以查看Mac系统中所开启的进程。

 

2.什么是线程

一个进程要想执行任务,必须得有线程(每个进程至少要有一个线程)一个进程(程序)的所有任务都在线程中执行。比如酷狗播放音乐、迅雷下载电影,都需要在线程中执行。

阻塞线程的任务(网络加载)一般放在子线程,线程不能随便开,也会损耗性能;UI主线程

 

3.线程的串行

一个线程中任务的执行是串行;如果要在一个线程中执行多个任务,那么只能一个一个按顺序执行这些任务。也就是说,同一时间内,一个线程只能执行一个任务

 

4. 多线程CPU不同调度

一个进程可以开启多条线程,每条线程可以并行执行不同的任务。例如:进程——》车间,线程——》车间工人

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

比如可以同时开启三个线程分别下载三个文件(文件A、B、C)【并行、同时进行】

 

5.多线程的原理

同一时间,CPU只能从事处理1条线程,只有1条线程在工作。

多线程并发(同时)执行,其实就是CPU快速地在多条线程之间调度(切换)

如果CPU调度线程的时间足够快,就造成了多线程并发执行的假象。

如果线程非常多,会发生什么情况

线程开销非常大,CPU会在N多线程之间调度,CPU会累死,消耗大量的CPU资源,每条线程被调度的频次会降低(线程的执行效率降低)。

 

 

 

猜你喜欢

转载自www.cnblogs.com/StevenHuSir/p/MultithreadingProgramming_NSThread.html