NSThread创建线程的三种方法
- (IBAction)NSThreadBtnClick:(id)sender {
[self threadObjectMethod];
[self threadClassMethod];
[self threadNSObjectMethod];
}
#pragma mark - 继承自NSObject的类的对象 都可以调用这个方法 只不过拿不到线程对象
- (void)threadNSObjectMethod{
//自动开启线程并且执行方法
//下边的这个方法在NSObject (NSThreadPerformAdditions)里边即NSObject的分类
[self performSelectorInBackground:@selector(NSThreadDemo:) withObject:@"NSObjectCategory"];
}
#pragma mark - 通过类方法创建 分离出来一个线程 不需要手动开启线程 自动开启线程并且执行方法
- (void)threadClassMethod{
[NSThread detachNewThreadSelector:@selector(NSThreadDemo:) toTarget:self withObject:@"classMethodThread"];
}
#pragma Mark- 通过对象方法来创建线程 并且需要手动启动线程
- (void)threadObjectMethod{
NSThread *thread = [[NSThread alloc]initWithTarget:self selector:@selector(NSThreadDemo:) object:@"objectMethodThread"];
//手动启动线程
[thread start];
}
- (void)NSThreadDemo:(id)obj{
NSLog(@"传入参数%@",obj);
NSLog(@"hello %@",[NSThread currentThread]);
}
补充部分多线程相关的读书笔记:

参考书籍:
Objective-C高级编程iOS与OSX多线程和内存管理
先写到这么多,以后再更新
如有问题,敬请指正;
如需转载,请注明出处,谢谢!
NSThread创建线程的三种方法的更多相关文章
- java创建线程的三种方法
这里不会贴代码,只是将创建线程的三种方法做个笼统的介绍,再根据源码添加上自己的分析. 通过三种方法可以创建java线程: 1.继承Thread类. 2.实现Runnable接口. 3.实现Callab ...
- 《Java多线程面试题》系列-创建线程的三种方法及其区别
1. 创建线程的三种方法及其区别 1.1 继承Thread类 首先,定义Thread类的子类并重写run()方法: package com.zwwhnly.springbootaction.javab ...
- Java并发编程(二)创建线程的三种方法
进程与线程 1. 进程 进程和代码之间的关系就像音乐和乐谱之间的关系一样,演奏结束的时候音乐就不存在了但乐谱还在:程序执行结束的时候进程就消失了但代码还在,而计算机就是代码的演奏家. 2. 线程 线 ...
- python 多线程编程之threading模块(Thread类)创建线程的三种方法
摘录 python核心编程 上节介绍的thread模块,是不支持守护线程的.当主线程退出的时候,所有的子线程都将终止,不管他们是否仍在工作. 本节开始,我们开始介绍python的另外多线程模块thre ...
- JAVA中创建线程的三种方法及比较
JAVA中创建线程的方式有三种,各有优缺点,具体如下: 一.继承Thread类来创建线程 1.创建一个任务类,继承Thread线程类,因为Thread类已经实现了Runnable接口,然后重写run( ...
- Java中创建线程的三种方法以及区别
Java使用Thread类代表线程,所有的线程对象都必须是Thread类或其子类的实例.Java可以用三种方式来创建线程,如下所示: 1)继承Thread类创建线程 2)实现Runnable接口创建线 ...
- Java基础_线程的使用及创建线程的三种方法
线程:线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务. 进程:进 ...
- java 创建线程的三种方法Callable,Runnable,Thread比较及用法
转自:http://www.chinaitlab.com/Java/line/942440.html 编写多线程程序是为了实现多任务的并发执行,从而能够更好地与用户交互.一般有三种方法,Thread, ...
- Java创建线程的三种方法比较
一般有三种方法,Thread,Runnable,Callable. Runnable和Callable的区别 (1)Callable规定的方法是call(),Runnable规定的方法是run(). ...
随机推荐
- C#内置函数 RunSql的使用
作用批量执行sql语句 表达式.RunSQL(SQLStatement,UseTransaction) 表达式.一个代表DoCmd对象的变量. 注释:sqlstatement参数的最大长度为 32,7 ...
- Unreal Engine 4 Radiant UI 插件入门教程(二)
本篇章前提要求:在UE4上安装了Radiant UI插件.如果没有安装,请找其它教程(或者是笔者的其它的教程,目前正在写). 本教程的目的:探讨如何从网页元素中调用蓝图中的内容: 第一步: 写一个网页 ...
- Java系列 – 用Java8新特性进行Java开发太爽了(续)
本人博客文章网址:https://www.peretang.com/using-java8s-new-features-to-coding-is-awesome-2/ 前言 上周, 我们谈论了关于Ja ...
- Java 基本语法----变量
变 量 变量的概念 内存中的一个存储区域该区域有自己的名称(变量名)和类型(数据类型)Java中每个变量必须先声明,后使用该区域的数据可以在同一类型范围内不断变化 定义变量的格式:数据类型 变量名 = ...
- bash脚本基础
1.bash特性之命令补全与路径补全 命令补全:敲击Tab按键 shell程序在接收到用户执行命令的请求且分析完成后,最左侧字符串将被当作命令去分析$PATH标量所指定的各路径下去查找 查找机制: 1 ...
- 关于javacc的认识
http://www.cnblogs.com/Gavin_Liu/archive/2009/03/07/1405029.html
- 《深入理解Java虚拟机》虚拟机类加载机制
上节学习回顾 上一节,我们深入到类文件去了解其结构细节,也大概对类文件的编写规则略知一二了,解析来我们就得学习这个类文件是如何被加载到Java虚拟机的,看看有什么引人入胜的奥秘. 本节学习重点 大部分 ...
- Java 字符串截取问题
编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串. 但是要保证汉字不被截半个,如"我ABC"4 public class StringSplit ...
- 爬虫协议robots
前面的话 Robots协议(也称为爬虫协议.机器人协议等)全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页 ...
- 46. leetcode 500. Keyboard Row
500. Keyboard Row Given a List of words, return the words that can be typed using letters of alphabe ...