多线程知识点总结 -NSThread4

NSThread

三种创建方式

NSThread的对象方法
- (void)threadDemo1 {
    NSLog(@"before %@", [NSThread currentThread]);

    NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(longOperation:) object:@"THREAD"];

    [thread start];

    NSLog(@"after %@", [NSThread currentThread]);
}小结:在start方法执行完毕后,会在另一个线程执longOperation:方法

 NSThread的类方法
- (void)threadDemo2 {
    NSLog(@"before %@", [NSThread currentThread]);

    [NSThread detachNewThreadSelector:@selector(longOperation:) toTarget:self withObject:@"DETACH"];

    NSLog(@"after %@", [NSThread currentThread]);
}小结:detachNewThreadSelector:类方法不需要启动;会自动创建线程并执行@selector方法
NSThread的类方法
- (void)threadDemo3 {
    NSLog(@"before %@", [NSThread currentThread]);

    [self performSelectorInBackground:@selector(longOperation:) withObject:@"PERFORM"];

    NSLog(@"after %@", [NSThread currentThread]);
}小结:这是NSObject的分类方法,会在后台自动执行@selector方法;

 

 
时间: 2024-08-07 21:19:36

多线程知识点总结 -NSThread4的相关文章

Java 多线程知识点整理

1.如何停止一个正在运行的线程? 使用共享变量,用volatile变量修饰,线程循环去访问该变量.如果线程因为发生某些事件进行阻塞,可以使用Thread的interrupt方法.可以使一个被阻塞的线程抛出一个中断异常,从而使线程提前结束阻塞状态,退出堵塞代码. class MyThread extends Thread { volatile boolean stop = false; public void run() { while (!stop) { System.out.println(g

多线程随笔知识点总结-NSThread4.1

线程的状态 状态说明 a.新建 实例化线程对象 b.就绪 向线程对象发送start消息,线程对象被加入可调度线程池等待CPU调度;detach方法和performSelectorInBackGround方法会直接实例化一个线程对象并加入可调度线程池 c.运行 CPU负责调度可调度线程池中的任务执行 线程执行完之前,状态可能在就绪和运行之间来回切换 d.阻塞 当满足某个预定条件时可以,可以使用休眠或锁阻塞线程执行 sleepForTimeInterval:休眠指定时长 sleepUntilDate

java多线程知识点

下面是我学习多线程记录的知识点,并没详细讲解每个知识点,只是将重要的知识点记录下来,有时间可以看看,如果有不对的地方,欢迎大家支出,谢谢! 1.多线程的状态和创建方式:     线程的状态:          1.新状态:线程对象已经创建,还没有在其上调用start()方法.          2.可运行状态:当线程有资格运行,但调度程序还没有把它选定为运行线程时线程所处的状态.当start()方法调用时,线程首先进入可运行状态.在线程运行之后或者从        阻塞.等待或睡眠状态回来后,也

Java中多线程知识点总结

Java中有一个比较重要的知识点是多线程,废话就不说了,直接进入多线程的知识点.对多线程我们需要了解和知道一下的知识点:多线程的实现,多线程的安全性,多线程的线程通信,守护线程和线程的优先级等知识点. 首先,我想写点我对多线程的一点认识,其中说的语言不会很官方,但是我相信里面绝对没有坑,不会把大家带到歧途上去的.首先多线程的出现是为了更好的利用计算机的资源,提高程序的响应速度.多线程的运行由操作系统来控制,多核和单核的cpu执行同一个多线程程序的过程可能会不同,在单核中多线程程序只能在单核之间切

多线程知识点总结

1.创建线程的2种方法 方式1:继承java.lang.Thread类,并覆盖run()方法.优势:编写简单:劣势:无法继承其他父类 方式2:实现java.lang.Runnable接口,并实现run()方法.优势:可以继承其他类,多线程可以共享同一个Thread对象:劣势:编程方式稍微复杂,如需访问当前线程,需调用Thread.currentThread()方法 2. Java创建线程后,调用start()方法和run()的区别 两种方法的区别 1) start: 用start方法来启动线程,

java多线程知识点总结

1.线程调度知识:线程类Thread的了解,几个thread的方法.thread.sleep(),thread.join().(调用join方法的那个线程会立刻执行). object.wait()方法,notifyAll()方法. 2.线程间通信知识(共享资源):synchronized,volatile,readWriteLock,生产者消费者存储模型.队列.消息队列. 队列也算共享资源的访问啊.加锁在哪里加?(在共享对象里加锁) 3.实际中用到的地方:1.多线程访问缓存(数据队列,有生产者消

java多线程知识点汇总(四)多线程知识点脉络图

1.多线程安全问题 1)synchronized关键字:如何加锁的问题,选择synchronized方法还是synchnized代码块. 选择哪个锁问题,this对象,还是class对象(针对static方法或者变量),或者object对象 推荐使用同步代码块,因为加锁灵活,可以自己选择使用哪个锁,尤其一个类里面有多个同步方法时. 读写问题,保证多线程对同一对象的读写正常,不至于读到脏数据.读写方法共用同一个锁. 共享资源,这又涉及到单例模式的线程安全问题,线程池等. 2)线程安全类,比如str

多线程知识点(二)

1:互斥锁,只有一个线程进行(例如:读写)操作 2.栈区上面的对象随时可能销毁,ARC下block会自动保存到堆区 //NSGlobalBlock全局区(未使用局部变量) //    void (^task)() = ^{ //        NSLog(@"task"); //    }; //    NSLog(@"%@",task); // //    int a = 6; //    //NSStackBlock  栈区上面的对象随时可能会被销毁 //   

java多线程知识点概述

这里只起一个概述的作用,极其简单的列一下知识点,需要在脑海中过一下,如果哪些方面不熟悉的话,建议利用网络资源去学习. 1.线程.进程概念 概念 线程状态及其转换 2.死锁.预防.解决 3.jdk线程实现方式 继承Thread重写run方法.实现Runnable实现run方法.实现Callable重写call方法 call方法能抛出异常允许有返回值 join/jield/interrupt/stop/wait/sleep/setDaemon/suspend 4.线程同步.线程异步 同步使用场景:共