zoukankan      html  css  js  c++  java
  • iOS多线程之Thread


    1. Thread 是苹果官方提供的,简单已用,可以直接操作线程对象。不过需要程序员自己管理线程的生命周期,主要是创建那部分

    2. 优缺点
      • 面向对象,简单易用
      • 直接操作线程对象
      • 需要自己管理线程生命周期(主要指创建)
      • 偶尔会用的Thread,一般会用到它的方法;current、name等等
    3. 基本使用

      • 创建线程

      ``` 创建线程,手动启动 let thread = Thread(target: self, selector: #selector(makeMoney), object: [“Name”: “snailjj”]) thread.name = “Thread1” //线程的名字 thread.threadPriority = 0.6 //线程的优先级 thread.start() //创建完成后,手动启动线程,并且会执行makeMoney的方法

      < 大专栏  iOS多线程之Thread/li>
    创建线程,并且自己启动 hread.detachNewThreadSelector(#selector(eat), toTarget: self, with: nil)
    
    
       * 线程相关方法
    
    

    Thread.current:获取当前线程 Thread.main:获取主线程

    thread.isMainThread:当前线程是否是主线程 thread.name:当前线程的名字 thread.threadPriority:获取线程的优先级 0~1,线程优先级区别于线程占有cpu时间的多少,当然优先级越高同等条件下占有的cpu时间越多。级别高的执行效率要高于级别低的

    
    
       * 线程状态控制的方法
    
    

    thread.start() 线程进入就绪状态 -> 运行状态,当线程结束后,自动进入死亡状态

    //线程进入阻塞(暂停)状态 Thread.sleep(forTimeInterval: 0.5) Thread.sleep(until: Date(timeIntervalSinceNow: 0.5))

    //强制停止线程,并且进入死亡状态 Thread.exit()

    ```

  • 相关阅读:
    迭代器模式(Iterator)
    原型模式(Prototype)
    生成器模式(Builder)
    策略模式(Strategy)
    访问者模式(Visitor)
    桥接模式(Bridge)
    命令模式(Command)
    工厂方法模式(Factory Method)
    解决在Win7下安装MyGeneration,不能使用的问题
    Nhibernate拒绝配置文件(NHibernate.Mapping.Attributes的使用)
  • 原文地址:https://www.cnblogs.com/lijianming180/p/12258969.html
Copyright © 2011-2022 走看看