iOS多线程之Thread
多线程
•
Thread 是苹果官方提供的,简单已用,可以直接操作线程对象。不过需要程序员自己管理线程的生命周期,主要是创建那部分
- 优缺点
- 面向对象,简单易用
- 直接操作线程对象
- 需要自己管理线程生命周期(主要指创建)
- 偶尔会用的Thread,一般会用到它的方法;current、name等等
基本使用
- 创建线程
```
创建线程,手动启动
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()
```
iOS多线程之Thread的更多相关文章
- iOS多线程之8.NSOPeration的其他用法
本文主要对NSOPeration的一些重点属性和方法做出介绍,以便大家可以更好的使用NSOPeration. 1.添加依赖 - (void)addDependency:(NSOperation * ...
- iOS多线程之GCD小记
iOS多线程之GCD小记 iOS多线程方案简介 从各种资料中了解到,iOS中目前有4套多线程的方案,分别是下列4中: 1.Pthreads 这是一套可以在很多操作系统上通用的多线程API,是基于C语言 ...
- Java基础-进程与线程之Thread类详解
Java基础-进程与线程之Thread类详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.进程与线程的区别 简而言之:一个程序运行后至少有一个进程,一个进程中可以包含多个线程 ...
- iOS多线程之1.从Thread看多线程的生命周期
Thread 是多线程中最容易理解,但是使用起来又是最麻烦的一种多线程方法.为什么说容易理解呢?一个NSThread的对象就是一条线程.使用起来麻烦是因为,需要我们自己管理线程的生命周期:创建线程 ...
- iOS多线程之NSThread使用
iOS中的多线程技术 我们在iOS开发项目过程中,为了解决UI界面操作不被耗时操作阻塞,我们会使用到多线程技术.在iOS开发中,我们主要会用到三种多线程操作技术:NSThread,NSOperatio ...
- iOS多线程之GCD详解
GCD(Grand Central Dispatch)是基于C语言开发的一套多线程开发机制.也是目前苹果官方推荐的多线程开发方法.iOS三种多线程开发中GCD是抽象层次最高的.当然用起来也是最简单的. ...
- iOS多线程之NSOperation详解
使用NSOperation和NSOperationQueue进行多线程开发,只要将一个NSOperation(实际开发中需要使用其子类 NSInvocationOperation,NSBlockOpe ...
- iOS多线程之NSThread详解
在iOS中每个进程启动后都会建立一个主线程(UI线程),这个线程是其他线程的父线程.由于iOS中除了主线程,其他子线程是独立于Cocoa Touch的,所以只有主线程可以更新UI界面.iOS多线程的使 ...
- 【原】iOS多线程之NSThread、NSOperationQueue、NSObject和GCD的区别
区别: Thread: 是这几种方式里面相对轻量级的,但也是使用起来最负责的,你需要自己管理thread的生命周期,线程之间的同步.线程共享同一应用程序的部分内存空间, 它们拥有对数据相同的访问权限. ...
随机推荐
- Gym 101987K TV Show Game(2-SAT)
题目链接:https://vj.z180.cn/b4aacc08fc7aab6ce14e7baf13816c24?v=1571542994 题目要求n个灯(R,B),给出m组赋值方式,每一组中至少有两 ...
- CSS 定位体系概述
三种定位体系简介 框( box )布局影响因素之一,便是定位体系.定位体系也是其最为重要的影响因素. CSS2.1 中,一个框可以根据三种定位体系布局.CSS2.1 中的定位体系帮助作者使他们的文档更 ...
- Spire.doc jar包实现word文件添加水印demo
/** * @create: 2020-02-23 21:50 */ import com.spire.doc.*; import com.spire.doc.documents.WatermarkL ...
- 搭建公司的React开发环境
记录公司环境搭建 1.安装VSCODE, 安装网上的推荐各种控件2.安装node, yarn, 会自动添加path3.先初始化npm 全部按回车默认. npm init. 初始化yarn: yarn ...
- 如何将本地未提交的更改合并到另一个Git分支?
如何在Git中执行以下操作? 我当前的分支是branch1,我做了一些本地更改. 但是,我现在意识到我实际上是要将这些更改应用于branch2. 有没有办法应用/合并这些更改,以便它们成为branch ...
- TPO6-1 Powering the Industrial Revolution
By 1800 more than a thousand steam engines were in use in the British Isles, and Britain retained a ...
- 吴裕雄--天生自然python学习笔记:python 建立 Firebase 数据库连接
Python 程序通过 python-firebase 包可以存取 Firebase 数据库. 使用 python-firebase 包 首先必须安装 python-firebase 包,安装方法如下 ...
- window 彻底删除mysql
1. 运行regedit.exe,找到HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\MySQL 文件夹,将其删除: 2. 找到HKEY_LOCAL_ ...
- VS工程的相对路径写法
最近搭建一个VS工程的框架,为了让所有人都能直接使用,要使用相对路径,下面的几种常见路径的写法: 1.两个点“..\”表示在工程文件(*.vcxproj)的上一级目录. 2.一个点“.\”则表示和工程 ...
- sql查询语句解析过程--根据网络资料整理
查询语句: (8)SELECT(9)DISTINCT(11)<TopNum> <selectlist> (1)FROM<left_table> (3)<joi ...