zoukankan      html  css  js  c++  java
  • 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、关于多线程的一些名词解释

       

      

  • 相关阅读:
    第七周编程总结
    第六周编程总结
    第五周编程总结
    2019 第四周作业编程总结
    第三周编程总结
    寒假作业 pta编程总结3
    跟着官网学Angular-创建响应式表单-源代码
    RxJS---转载
    NPM
    Sass
  • 原文地址:https://www.cnblogs.com/Moshimol/p/5706697.html
Copyright © 2011-2022 走看看