1.什么是进程?什么是线程?二者有什么区别?
答:线程是CPU独立运行,以及独立调度的基本单位(可以理解为一个进程中执行的代码片段),(扩展:“线程使用的是进程的资源,系统不会给线程分配资源;更新UI的时候要在主线程里更新,不要在子线程里更新,存在不确定性,会出错)。
进程:是资源分配的基本单位(进程是一块包含了某些资源的内存区域)。
区别:进程是线程的容器,真正完成代码执行的线程,而进程作为线程的执行环境。一个程序至少包含一个进程,一个进程至少包含一个线程,一个进程中多个线程分享当前进程所拥有的资源。
2.什么是单线程与多线程,单线程与多线程的区别?
(1)单线程:每个正在运行的程序(即进程),至少包含一个线程,这个线程叫做主线程,主线程在程序启动时背创建用于执行main函数。,一个只有主线程的程序叫做单线程程序,主线程负责执行程序所有的代码(UI展现及刷新,网络请求,本地存储等等),这些代码只能顺序执行,无法并发执行。
多线程:拥有多个线程的程序,称作多线程程序。iOS允许用户自己开辟新的线程,相对于主线程来讲,这些线程称作主线程。
可以个根据需求开辟若干个子线程,子线程与主线程都是独立运行的单元,各自的执行互不影响,因此能够并发执行。
2)单线程程序:只有一个线程代码顺序执行,容易出现代