用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在开发中也不常用,了解即可

 
 

多线程 NSThread 了解的更多相关文章

  1. iOS多线程 NSThread/GCD/NSOperationQueue

    无论是GCD,NSOperationQueue或是NSThread, 都没有线程安全 在需要同步的时候需要使用NSLock或者它的子类进行加锁同步 "] UTF8String], DISPA ...

  2. 多线程NSThread基本用法

        #import "ViewController.h" @interface ViewController () @end @implementation ViewContr ...

  3. [iOS]深入浅出 iOS 之多线程 NSThread

    OS 支持多个层次的多线程 编程,层次越高的抽象程度越高,使用起来也越方便,也是苹果最推荐使用的方法.     下面简要说明这三种不同范式:  Thread 是这三种范式里面相对轻量级的,但也是使用起 ...

  4. 多线程 -- NSThread

    NSThread NSThread 一个NSThread对象就代表一条线程 创建线程的几种方式 alloc/init // 1.创建线程 NJThread *thread = [[NJThread a ...

  5. [iOS 多线程 & 网络 - 1.1] - 多线程NSThread

    A.NSThread的基本使用 1.创建和启动线程 一个NSThread对象就代表一条线程创建.启动线程NSThread *thread = [[NSThread alloc] initWithTar ...

  6. 多线程 NSThread GCD

    ios多线程实现种类 NSThread NSOperationQueue NSObject GCD *************** 1.NSThread //线程 第一种 NSThread *thre ...

  7. iOS多线程NSThread和GCD

    在iOS中啊  其实有多种方法实现多线程 这里只记录两个比较常用的  或者说我比较常用的 一个就是BSThread 另一个就是一听名字就比较霸气的妇孺皆知的GCD 先说一下NSThread吧 这个方式 ...

  8. iOS 多线程NSThread理解与场景示例

    NSThread是相对GCD和NSOperationQuene而言,比较轻量级的一种多线程处理方式. 但同时,它的弊端就是需要自己管理线程的生命周期,以及线程同步:而另外两种不需要自己管理. 常见方法 ...

  9. 九、使用多线程——NSThread,GCD和NSOperation

    概述 早上起床,你先打开洗衣机,然后用热水把泡面泡上,接着打开电脑开启一天的码农生活.其中“洗衣服”.“泡泡面”和“码代码”3个任务(线程)同时进行,这就是多线程.网上有许多关于多线程的经典解释,此处 ...

  10. IOS 多线程 NSThread

    一个正在运行的应用程序是一个进程,一个进程会默认开启一个主线程,但是在主线程中的操作是串行的,也就是当有多个任务同时需要完成的时候,是按照顺序一个个执行.因此,为了提高效率,会在进程中开启多个线程,每 ...

随机推荐

  1. Python笔记——基本数据结构:列表、元组及字典

    转载请注明出处:http://blog.csdn.net/wklken/archive/2011/04/10/6312888.aspx Python基本数据结构:列表,元组及字典 一.列表 一组有序项 ...

  2. 九度OJ 1105:字符串的反码 (翻译)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:4929 解决:1529 题目描述: 一个二进制数,将其每一位取反,称之为这个数的反码.下面我们定义一个字符的反码.如果这是一个小写字符,则它 ...

  3. select version();desc mysql.user;

    D:\wamp64\wamp\bin\mysql\mysql5.6.17\bin>mysql -hgoDev -uroot -ppasswordWarning: Using a password ...

  4. noip2005篝火晚会

    这是一道不算太难的题,但愚蠢的我并没有想到. 首先,判断无解的情况:他想相邻的不想与他相邻. 然后,构造出合法的数列,因为第一位左边有两种选择,且构造出的环不等价,所以要做两次. (这一点我并没有想清 ...

  5. css 鼠标移入边框填充效果

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. bootstrap学习大纲

    bootstrap 学习分三部分,分别是 css样式,css组件,js插件. 下面介绍三部分分别要学习的内容: 1.css样式:栅格系统,排版,代码,表格,表单,按钮,图片,辅助类,响应式工具. 2. ...

  7. cuda 版本查阅

    查看cuda版本 cat  /usr/local/cuda/version.txt nvcc -V

  8. C++模板之可变模板参数

    可变模板参数---- C++11新特性 可变模板参数(variadic templates)是C++11新增的最强大的特性之一,它对参数进行了高度泛化,它能表示0到任意个数.任意类型的参数 由于可变模 ...

  9. TX1 Gsteramer 环境配置

    安装命令: sudo add-apt-repository universe sudo add-apt-repository multiverse sudo apt-get update -tools ...

  10. TCP连接状态变化

    TCP连接状态变化 参考文章:TCP连接的状态详解以及故障排查 TCP建立连接--三次握手 CLOSED:起始状态,无任何连接. LISTEN:服务端建立socket之后需要listen进入LISTE ...