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){

    // 被锁住的代码

    }

  • 相关阅读:
    004---基于TCP的套接字
    003---socket介绍
    002---tcp/ip五层详解
    001---C/S架构
    008---re正则模块
    007---logging日志模块
    006---hashlib模块
    005---json & pickle
    004---os & sys
    22.解决 eclipse 与 AS 共用 SDK 导致 eclipse ADT 无法使用的问题
  • 原文地址:https://www.cnblogs.com/sleepingSun/p/5138464.html
Copyright © 2011-2022 走看看