iOS-线程和进程

1,182 阅读2分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动

通过问题看本质!!!

如果被问到线程和进程,你会怎么回答呢?

网络很多文章讲的都很详细,但是我们不可能面面俱全的说出来。不说背下来,就是让你照着说,你也要说不长的时间了。所以我们要有自己的总结,而且讲得要有思路有条理。因此我们可以从以下几点去说。

1、先要知道它们的概念,认识它们,才能更好的使用。

2、它们之间有什么关联。

3、优缺点,为什么要使用它们。

总结起来三点

  • 它们是什么?
  • 它们之间的关系?
  • 优缺点?

概念

线程
  • 线程是进程的基本执行单位,一个进程的所有任务都在线程中执行。
  • 进程想要执行任务,必须要有线程。
  • 程序启动时,会默认开启一条线程,这条线程就是主线程。
进程
  • 系统中正在运行的一个应用程序。
  • 一个进程就是一个app,每个进程都是相互独立的。
  • 每个程序运行的内存空间时独立且受保护的。
线程和进程关系

公司和员工的关系,员工可以共享公司的资源

1、同一个进程的线程共享进程的地址空间和资源(IO、CPU、内存)。

公司和公司的关系,它们是相互独立的

2、进程和进程之间的地址空间是相互独立的。

3、多进程的健壮性比多线程强。

  • 多进程:一个进程奔溃后,在保护模式下,不会对其他进程造成影响,因为它们是相互独立的。
  • 多线程:一个线程奔溃后,会导致程序死掉。
优缺点

1、优点:

  • 适当提高程序的执行效率、提高资源利用率
  • 线程执行完任务就会销毁

2、缺点:

  • 开启线程需要占用内存空间(512kb)
  • 大量开启线程,会占用大量的内存空间,降低程序的性能
  • 线程越多,CPU在调用线程的开销就越大,程序也会变得的复杂(线程通信,数据共享)
多线程原理

单核多线程的原理:并发操作。CPU在单位时间片里快速在各个线程中切换。

多核多线程的原理:并行操作。充分利用CPU的多核,在多个线程同步进行。