文档章节

第01天多线程网络:(07):NSThread创建线程的生命周期

宇鸿165
 宇鸿165
发布于 2017/04/15 09:53
字数 319
阅读 7
收藏 0

#####一、NSThread创建线程的生命周期

 线程的生命周期:
 当任务执行完毕之后被释放掉

code LYHThread(写一个继承NSThread的类,调用dealloc方法就能查看什么时候被销毁的了)

#import <Foundation/Foundation.h>
@interface LYHThread : NSThread
@end
----
#import "LYHThread.h"
@implementation LYHThread
- (void)dealloc
{
    NSLog(@"%s -- %@",__func__,[NSThread currentThread]);
}
@end

ViewController

/*
 线程的生命周期:
 当任务执行完毕之后被释放掉
 */



#import "ViewController.h"
#import "LYHThread.h"

#import <pthread.h>
@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

}

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
#pragma 1.NSThread
     [self createNewThread1];

}
#pragma 方式1 通过 - (instancetype)initWithTarget:(id)target selector:(SEL)selector object:(id)argument; 创建子线程是属于一个休眠的状态的
- (void)createNewThread1
{
    //1.创建线程,并且执行那个方法

    LYHThread *threadA = [[LYHThread alloc]initWithTarget:self selector:@selector(run:) object:@"abc"];
    // 设置属性
    threadA.name = @"线程A"; // 线程名称
    // 设置优先级 取值范围0.0 ~ 1.0 之间 最高是1.0 默认优先级是0.5
    threadA.threadPriority = 1.0;
    //2.执行线程
    [threadA start];

}


- (void)run:(NSString *)parma
{
    for (int i = 0; i<10000; i++) {
        NSLog(@"%zd --- %@",i,[NSThread currentThread]);
    }
}



void * _Nullable task(void * param)
{
    // 把耗时操作放到子线程
    for (int i = 0; i<10000; i++) {
        NSLog(@"%zd --- %@",i,[NSThread currentThread]);
    }
    
    // 返回一个null
    NSLog(@"__ %@",[NSThread currentThread]); // <NSThread: 0x61000006b900>{number = 3, name = (null)}
    // number 不等于1 就是子线程
    return NULL;
}


@end

© 著作权归作者所有

宇鸿165
粉丝 1
博文 919
码字总数 368963
作品 0
广州
私信 提问
关于iOS多线程,你看我就够了

在这篇文章中,我将为你整理一下 iOS 开发中几种多线程方案,以及其使用方法和注意事项。当然也会给出几种多线程的案例,在实际使用中感受它们的区别。还有一点需要说明的是,这篇文章将会使...

伯恩的遗产
2015/07/29
0
0
关于iOS多线程

关于iOS多线程 原文地址:http://www.jianshu.com/p/0b0d9b1f1f19 在这篇文章中,我将为你整理一下 iOS 开发中几种多线程方案,以及其使用方法和注意事项。当然也会给出几种多线程的案例,在实...

法斗斗
2016/03/10
15
0
iOS开发之多线程技术(NSThread、OperationQueue、GCD)

在前面的博客中如果用到了异步请求的话,也是用到的第三方的东西,没有正儿八经的用过iOS中多线程的东西。其实多线程的东西还是蛮重要的,如果对于之前学过操作系统的小伙伴来说,理解多线程...

小近
2014/11/13
888
1
iOS学习 --多线程和GCD的理解

进程的概念:每一个进程都是一个应用程序,都有独立的内存空间,一般情况下,一个应用存在一个进程,但也有多个进程的情况(比如浏览器) 同一个进程中的线程共享内存中的内存和资源。 多线程...

fengyun321
2015/09/20
66
0
iOS开发 多线程(二) NSThread的使用(转)

每个iOS应用程序都有个专门用来更新显示UI界面、处理用户的触摸事件的主线程,因此不能将其他太耗时的操作放在主线程中执行,不然会造成主线程堵塞(出现卡机现象),带来极坏的用户体验。一般...

神补刀
2015/08/18
657
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周四乱弹 —— 干啥啥不行,吃饭第一名。

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @巴拉迪维 : 李白到杜甫家吃饭。杜甫洗菜,发现只有青瓜和萝卜,心中愧疚。这时,他看见了邻居家的鸡,杜甫一时心酸,忍不住喃喃自语:我希望...

小小编辑
23分钟前
80
7
Java描述设计模式(08):桥接模式

本文源码:GitHub·点这里 || GitEE·点这里 一、桥接模式简介 1、基础描述 桥梁模式是对象的结构模式。又称为柄体(Handle and Body)模式或接口(Interface)模式。桥梁模式的用意是“将抽象化...

知了一笑
23分钟前
4
0
C++ 函数指针的用法

天王盖地虎626
37分钟前
1
0
白话比原链跨链技术

随着Bystack的主侧链架构的推出,主侧链之间的跨链问题也成为比原链团队的主要攻克工程难题,当前比原链已经推出了两种跨链的机制,各有不同的侧重点,可能因为本身的跨链技术比较晦涩,本篇...

比原链Bytom
45分钟前
2
0
PostgreSQL参数search_path影响及作用

search_path稍微熟悉PG就会用到,用法这里就不必讲,本篇主要讲它在程序里怎样处理。 1、GUC参数定义 这是个 config_string 参数 {{"search_path", PGC_USERSET, CLIENT_CONN_STATEMENT,...

有理想的猪
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部