iOS多线程之Thread

时间:2022-09-10 17:59:07

多线程

?
  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()

```