zoukankan      html  css  js  c++  java
  • NSThread 的用法

    一、线程的注意点:

    1.不要同时开太多的线程(最多不要超过5条,其中包括主线程)

    2.线程概念

    2.1.主线程:UI 线程,显示、刷新 UI 界面,处理 UI 控件的事件

    2.2.子线程:后台线程,异步线程

    3.不要把耗时的操作放在主线程,要放在子线程中执行

    二、NSThread 用法

    1.创建和启动线程的3种方式

    1.1.先创建,后启动

    // 创建

    NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(download:) object:nil];

    // 启动

    [thread start];

    1.2.创建完自动启动

    [NSThread detachNewThreadSelector:@selector(download:) toTarget:self withObject:nil];

    1.3.隐式创建(自动启动)

    [self performSelectorInBackground:@selector(download:) withObject:nil];

    2.常见方法

    2.1.获得当前线程

    + (NSThread *)currentThread;

    2.2.获得主线程

    + (NSThread *)mainThread;

    2.3.睡眠(暂停)线程

    + (void)sleepUntilDate:(NSDate *)date;

    + (void)sleepForTimeInterval:(NSTimeInterval)ti;

    2.4.设置线程的名字

    - (void)setName:(NSString *)name;

    - (NSString *)name;

    三、线程同步

    1.实质:为了防止多个线程抢夺同一个资源造成的数据安全问题

    2.实现:给代码加一个互斥锁(同步锁)

    @synchronized(self){

    // 被锁住的代码

    }

  • 相关阅读:
    深度学习练习(三)
    深度学习核心技术笔记(一)
    tensorflow的函数
    举例
    Tensorflow 笔记
    tensorflow框架
    基于python的感知机
    深度学习练习(一)
    深度学习练习(二)
    [javascript 实践篇]——那些你不知道的“奇淫巧技”
  • 原文地址:https://www.cnblogs.com/sleepingSun/p/5138464.html
Copyright © 2011-2022 走看看