iOS多线程开发小demo2,NSThread篇

用NSThread创建子线程的3种方法

//  DYFViewController.m
//  623-02-pthread
//
//  Created by dyf on 14-6-23.
//  Copyright (c) 2014年 ___FULLUSERNAME___. All rights reserved.
//

#import "DYFViewController.h"
#import <pthread.h>

@interface DYFViewController ()

@end

@implementation DYFViewController

//// c语言函数
//void *run(void *data)
//{
//    // 1.获取当前的线程
//    NSThread *cThread = [NSThread currentThread];
//
//    // 2.打印线程
//    NSLog(@"%@", cThread);
//
//    // 3.h耗时操作
//    for (int i = 0; i < 9999; i++) {
//        NSLog(@"%@", cThread);
//    }
//
//    return NULL;
//}

- (IBAction)btnOnClick {
    // 1.获取当前的线程
    NSThread *cthread = [NSThread currentThread];

    NSThread *mt = [NSThread mainThread];
    // 2.打印线程
    NSLog(@"%@", cthread);

    NSLog(@"%@", mt);

    // 3.执行一线耗时的操作 : 创建一套子线程
    [self threadCreate3];

}
- (void)run:(NSString *)parma
{
//    [NSThread threadPriority];
//
//    [NSThread setThreadPriority:0.55];
    // 取值0-1,默认0.5
    for (int i = 0; i < 9999; i++) {
        NSLog(@"%@---------%@", [NSThread currentThread], parma);
    }
}

- (void)threadCreate5
{
    // 分离出的子线程
    [NSThread detachNewThreadSelector:@selector(run:) toTarget:self withObject:@"2222222"];
}
- (void)threadCreate4
{
    // 分离出的子线程
    [NSThread detachNewThreadSelector:@selector(run:) toTarget:self withObject:@"2222222"];
}

/**
 *  NSThread创建方式3:隐世线程创建,并且直接(自动)启动
 */
- (void)threadCreate3
{
    [self performSelectorInBackground:@selector(run:) withObject:@"333333"];
}

/**
 *  创建方式2:创建完线程后自动启动
 */
- (void)threadCreate2
{
    // 分离出的子线程
    [NSThread detachNewThreadSelector:@selector(run:) toTarget:self withObject:@"2222222"];
}

/**
 *  创建方式1:①先创建初始化子线程②再启动
 */
- (void)threadCreate
{
    NSThread *thread1 = [[NSThread alloc] initWithTarget:self selector:@selector(run:) object:@"heheh"];
    thread1.name = @"thread1";
    // 开启线程
    [thread1 start];

    NSThread *thread2 = [[NSThread alloc] initWithTarget:self selector:@selector(run:) object:@"heheh"];
    thread2.name = @"thread2";
    // 开启线程
    [thread2 start];

    NSThread *thread3 = [[NSThread alloc] initWithTarget:self selector:@selector(run:) object:@"heheh"];
    thread3.name = @"33";
    // 开启线程
    [thread3 start];
}

@end

利用NSThread在开发中也不常用,了解即可

iOS多线程开发小demo2,NSThread篇

时间: 2024-12-26 15:30:39

iOS多线程开发小demo2,NSThread篇的相关文章

iOS多线程开发小demo

首先演示一下主线程的阻塞 // DYFViewController.m // 623-01-阻塞多线程 // // Created by dyf on 14-6-23. // Copyright (c) 2014年 ___FULLUSERNAME___. All rights reserved. // #import "DYFViewController.h" @interface DYFViewController () @end @implementation DYFViewCon

iOS多线程开发小demo5 线程间的通信

// DYFViewController.m // 623-06-线程间的通信 // // Created by dyf on 14-6-23. // Copyright (c) 2014年 ___FULLUSERNAME___. All rights reserved. // #import "DYFViewController.h" @interface DYFViewController () @property (weak, nonatomic) IBOutlet UIImag

iOS多线程开发小demo7 GCD队列组

// DYFViewController.m // 623-08-队列组 // // Created by dyf on 14-6-23. // Copyright (c) 2014年 ___FULLUSERNAME___. All rights reserved. // #import "DYFViewController.h" @interface DYFViewController () @property (weak, nonatomic) IBOutlet UIImageVi

iOS多线程开发小demo4,线程的同步问题

// DYFViewController.m // 623-05-线程同步问题 // // Created by dyf on 14-6-23. // Copyright (c) 2014年 ___FULLUSERNAME___. All rights reserved. // #import "DYFViewController.h" @interface DYFViewController () @property (nonatomic, assign) int leftCount

iOS多线程开发小demo6 GCD

// DYFViewController.m // 623-07-GCD // // Created by dyf on 14-6-23. // Copyright (c) 2014年 ___FULLUSERNAME___. All rights reserved. // #import "DYFViewController.h" @interface DYFViewController () @property (weak, nonatomic) IBOutlet UIImageVi

iOS多线程开发小demo3,线程的状态

// Created by dyf on 14-6-23. // Copyright (c) 2014年 ___FULLUSERNAME___. All rights reserved. // #import "DYFViewController.h" @interface DYFViewController () @property (nonatomic, strong) NSThread *thread; @end @implementation DYFViewController

iOS多线程开发——NSThread浅析

在IOS开发中,多线程的实现方式主要有三种,NSThread.NSOperation和GCD,我前面博客中对NSOperation和GCD有了较为详细的实现,可以参考<iOS多线程开发--NSOperation/NSOperationQueue浅析><iOS多线程开发--GCD的使用与多线程开发浅析>.以及对于多线程中的同步异步,并行串行等概念,我在<GCD实践--串行队列/并发队列与iOS多线程详解>中也有较为详细的讲解.为了学习的完整性,今天我们主要从代码层面来实现

IOS多线程开发

本文转载至 http://blog.csdn.net/davidsph/article/details/8171607 IOS的多线程,一般分为三种方式: 1,Thread;2, Cocoa operations;3, Grand Central Dispatch (GCD) (iOS4 才开始支持) 下面简单说明一下: 1:NSThread   创建方式主要有两种: [NSThread detachNewThreadSelector:@selector(myThreadMainMethod:)

ios 多线程开发(三)Run Loops

Run loops是线程相关的一些基本东西.一个run loop是一个处理消息的循环.用来处理计划任务或者收到的事件.run loop的作用是在有事做的时候保持线程繁忙,没事的时候让线程挂起. Run loop的管理并不是完全自动的.你仍然需要设计代码来在合适的时候启动run loop来相应事件.Cocoa和Core Foundation都提供了run loop对象来配置和管理run loop.程序并不需要创建这些对象,每个线程,包括主线程都有一个对应的run loop对象.只有非主线程需要明确