iOS多线程

  1、了解多线程

    在现在的操作系统之中,都支持线程的概念,每个进程包含多个线程,借助多个CPU的内核,来实现多任务。在早期的时候,系统吧CPU资源在多个线程之间进行切

  换,给用户感觉是在同时处理多个任务

  2、进程和线程

    在计算机中,每个应用程序都存在一个进程,每个进程都有多个线程,这些线程之间可以级进行通讯,当CPU拥有多个内核的时候,各个线程之间可以分配到不同的

  CPU内核中进行处理,即为真正意义上的多任务同时处理

  

    在任意的iOS中,程序运行起来,默认都会产生一个主线程(MainThread),主线程专门来处理UIkiit对象的操作,所以说,当有界面的更新和显示的时候,都要放

  到主线程中执行,包括用户事件等操作

     

    在多线程同时处理任务,会涉及到线程安全的问题,当多个线程对一个对象进行操作的时候,就会影响结果的正确性,因为你也不知道那个线程前后对这个数据进行操作

  所以,线程在对某个对象进行操作的时候,需要使用到锁的机制,当一个线程多这个数据进行操作的时候,就会对这个对象进行上锁,这样就不会让其他的线程线程对这个数据

  进行操作,然而,加锁虽然解决了线程间的安全问题,但是却也带来了一些坏的影响,就会影响了程序运行的效率。

     在我们给一个自定义类中添加属性的时候,属性的关键词就会有atomic和nonatomic{原子性和非原子性},其中 atomic就是线程安全的,当有线程访问这个属性的

  时候,会为该属性的setter的方法进行枷锁,atmoic是默认值,但是,我们在实际的开发过程中,都会使用的nonatomic,以为对于移动设备来说,我们更加注重效率,只有

  只有当这个程序效率跟高,才能积累更多的用户,但是虽然是这样的,我们也应该注重以下线程的安全问题

  

  3.NSthread

    NSthread类是apple提供线程管理的类,提供了线程的管理,但是随着GCD和NSOperation的推出,NSThread使用就大大减少了,但是在开发iOS中,我们也会获取

  线程,常用的方法是

    

  4、补充

  在线程中,ID=1为主线程

  当一个线程结束后,该线程如果是thread4,下一个进程出现的时候,线程的名字就会从5开始,并且消失的线程不能被找到。

  5、关于多线程的一些名词解释

   

  

posted on 2016-07-26 11:02  Moshimol  阅读(120)  评论(0编辑  收藏  举报

导航