线程2--多线程NSThread

NSThread三种方式创建子线程

/**
 * NSThread创建线程方式1
 * 1> 先创建初始化线程
 * 2> start开启线程
 */
-(void)creatNSThread
{
    NSThread  *thread=[[NSThread alloc]initWithTarget:self selector:@selector(run:) object:@"线程A"];
    //为线程设置一个名称
    thread.name=@"线程A";
    //开启线程
    [thread start];

    NSThread  *thread2=[[NSThread alloc]initWithTarget:self selector:@selector(run:) object:@"线程B"];
    //为线程设置一个名称
    thread2.name=@"线程B";
    //开启线程
    [thread2 start];
}

/**
 * NSThread创建线程方式2
 *创建完线程直接(自动)启动
 */

-(void)creatNSThread2
{
    //    NSThread *thread=[NSThread detachNewThreadSelector:@selector(run:) toTarget:self withObject:@"创建完线程直接(自动)启动"];

    [NSThread detachNewThreadSelector:@selector(run:) toTarget:self withObject:@"创建完线程直接(自动)启动"];
}

/**
 * NSThread创建线程方式3
 * 隐式创建线程, 并且直接(自动)启动
 */

-(void)creatNSThread3
{
    //在后台线程中执行===在子线程中执行
    [self performSelectorInBackground:@selector(run:) withObject:@"隐式创建"];
}

-(void)run:(NSString *)str
{
    //获取当前线程
    NSThread *current=[NSThread currentThread];
    //打印输出
    for (int i=0; i<100; i++) {
        NSLog(@"run---%@---%@%i",current,str,i);
    }
}
时间: 2024-08-01 07:40:42

线程2--多线程NSThread的相关文章

多线程——NSThread、GCD、NSOperation

1.前言: 一个应用程序就是一个进程,一个进程至少包含一个线程,程序启动会自动创建一个主线程,负责UI界面的现实和控件事件的监控.多线程可以更充分的利用系统CPU资源,一定程度上提升程序的性能.1个进程可以开启多条线程,每条线程可以并行(同时)执行不同的任务.在一个线程内可以包含多个事物(要干的活),在线程内依据先进先出的特性串行执行…… 2.NSThread - (void)viewDidLoad { [super viewDidLoad]; NSLog(@"main thread is %@

多线程 NSThread

多线程 NSThread 创建和启动线程 一个NSThread对象就代表一条线程 创建.启动线程 NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(run) object:nil]; [thread start]; // 线程一启动,就会在线程thread中执行self的run方法 主线程相关用法 + (NSThread *)mainThread; // 获得主线程 - (BOOL)isMain

iOS多线程 NSThread/GCD/NSOperationQueue

http://www.cnblogs.com/kenshincui/p/3983982.html iOS开发系列--并行开发其实很容易 2014-09-20 23:34 by KenshinCui, 9738 阅读, 19 评论, 收藏,  编辑 --多线程开发 概览 大家都知道,在开发过程中应该尽可能减少用户等待时间,让程序尽可能快的完成运算.可是无论是哪种语言开发的程序最终往往转换成汇编语言进而解释成机器码来执行.但是机器码是按顺序执行的,一个复杂的多步操作只能一步步按顺序逐个执行.改变这种

多线程 NSThread GCD

ios多线程实现种类 NSThread NSOperationQueue NSObject GCD *************** 1.NSThread //线程 第一种 NSThread *thread1=[[NSThread alloc] initWithTarget:self selector:@selector(sum) object:nil]; // //    //给线程起名字 [email protected]"thread1"; //    //启动线程 [thread

线程和多线程(二)

概述 多线程的概念在各个操作系统上都会接触到,windows.Linux.mac os等等这些常用的操作系统,都支持多线程的概念. 当然ios中也不例外,但是线程的运行节点可能是我们平常不太注意的. 之前简单介绍了下单线程和多线程,下面再对单线程和多线程做下补充. 一.程序.进程.线程的区别 二.单线程 三.多线程 四.单线程和多线程的区别 五.多线程的作用 1.多线程的作用 相信有过开发经验的程序员都知道,当我们把代码写完后,程序是一行一行逐行执行代码的,当其中一行代码需要执行较长时间(例如s

线程与多线程、进程

1.单线程:单线程是一个人干一件事,也是主线程,从上到下有顺序的去干,python解释器就是个单线程(主线程),所以当事情多了,一个人也办法,就等着拜 2.多线程:有2个线程以及以上的叫多线程,分为主线程和子线程 (主线程和子线程是相对的,正在干活的是主线程),有一大堆的事情,很多人一起干,当主线程空档期,子线程抢占活,但是始终只有一个人在干活(主线程).(主线程累啦,子线程抢占活,这是子线程就变成主线程.多线程特点:共同干一件事情,抢占资源,利用了主线程的空档期,这个Cpython的特性,就是

进程、线程、多线程的网址集结(看)

面试总是会问这方面的内容,自己虽然知道一点点点点的概念,但是并不是很透彻的了解,这次,面试就挂在这个问题上了.哎.还是先提前写一下这个吧.进程和线程. 1.进程和线程 下面这个总结得挺好的. http://www.cnblogs.com/obama/archive/2013/04/12/3016509.html 2.多线程的讲解 http://blog.csdn.net/column/details/killthreadseries.html http://blog.csdn.net/morew

Java线程及多线程技术及应用

第6 章 Java线程及多线程技术及应用 6.1线程基本概念 1.进程和线程的基础知识 l 进程:运行中的应用程序称为进程,拥有系统资源(cpu.内存) l 线程:进程中的一段代码,一个进程中可以哦有多段代码.本身不拥有资源(共享所在进程的资源) 在java中,程序入口被自动创建为主线程,在主线程中可以创建多个子线程. 区别: 1.是否占有资源问题 2.创建或撤销一个进程所需要的开销比创建或撤销一个线程所需要的开销大. 3.进程为重量级组件,线程为轻量级组件 l 多进程: 在操作系统中能同时运行

IOS多线程--NSThread

Pthread 声明 pthread_t cThread; 创建子线程  pthread_create(&cThread, NULL, working, NULL); 1.C方法,跨平台的创建子线程,支持Unix,Linux,MacOS,iOS 2.需要引入#import <pthread.h> 3.优点:能开启一个线程,其他 几乎没有 4.缺点:太C了,不友好 NSThread(子线程) 1.NSThread是 cocoa(MacOS,iOS)中一个轻量级的线程对象 2.NSThre

进程、线程、多线程相关总结

进程.线程.多线程相关总结 一.说说概念 1.进程(process) 狭义定义:进程就是一段程序的执行过程. 广义定义:进程是一个程序关于某个数据集合的一次运行.它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元. 简单的来讲进程的概念主要有两点:第一,进程是一个实体.每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region).数据区域(data region)和堆栈(stack region).文本区域存储处理器执行的代码:数