线程,是进程的一个具体实例.
程序运行的最小单位,是被系统独立调度和CPU的基本运行单元.
进程是操作系统中可以并行工作的基本单元。
一个应用程序有一个进程,一个进程中至少有一个线程.
进程和线程的主要差别在于它们是不同的操作系统资源管理方式。
进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。
线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。
但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程
2.谈谈你对多线程开发的理解?ios中有几种实现多线程的方法?
在一个进程中有多个线程共同存在,每个线程执行各自的任务,相互之间不会干扰,一个线程可以创建或者撤销其他的线程.
让一个进程可以同时执行很多任务.这就减少了等待时间,提高了进程的运行效率.但是多线程会耗费资源,并且由于一个线程死掉会造成整个进程死掉.多线程也容易造成安全性问题.
有三种
第一种,使用@synchronized(self)
第二种,使用GCD
第三种,使用NSOperationQueue
3.线程同步和异步的区别?IOS中如何实现多线程的同步?
线程同步,是指多个线程同时操作或者说访问一个资源(数据)。这时候需要对数据添加保护,这个保护就是线程的同步。
特点:等待资源访问结束,浪费时间。效率低,串行执行任务。
线程异步:访问资源时,在空闲等待的是时候,同时访问其他资源,实现多线程机制,并行执行任务。
实现多线程同步:
使用GCD的主队列。使用NSOperationQueue ,把最大线程数设为1
用GCD中的串行队列来解释多线程的同步,也就是队列中得任务为串行.他们各自相邻的任务有依赖性,如果任务1不完成,那么任务2就不会开始,这就是同步。
4.获取一台设备唯一标识的方法有哪些?
1.UDID
2.UUID
3.MAC ADDRESS
4.OPEN UDID
5.广告标示符
6.Vindor 标示符
iOS7之后用得是keychain(钥匙串)
本文出自 “久久归一” 博客,请务必保留此出处http://lulun426.blog.51cto.com/9197884/1565477
原文地址:http://lulun426.blog.51cto.com/9197884/1565477