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

线程的状态

状态说明

a.新建

实例化线程对象

b.就绪

向线程对象发送start消息,线程对象被加入可调度线程池等待CPU调度;detach方法和performSelectorInBackGround方法会直接实例化一个线程对象并加入可调度线程池

c.运行

CPU负责调度可调度线程池中的任务执行

线程执行完之前,状态可能在就绪和运行之间来回切换

d.阻塞

当满足某个预定条件时可以,可以使用休眠或锁阻塞线程执行

sleepForTimeInterval:休眠指定时长

sleepUntilDate:休眠到指定日期

@synchronized(self):互斥锁

e.死亡

正常死亡:线程执行完毕

非正常死亡:当满足某个条件时,在线程内部终止执行;当满足某个条件时在主线程终止线程对象

时间: 2024-10-20 20:01:37

多线程随笔知识点总结-NSThread4.1的相关文章

多线程随笔知识点总结3

pthread演练 1.基本概念 pthread是POSIX多线程开发框架,是跨平台的C语言框架,在苹果的头文件中并没有太多的注释 2.演练 #import <pthread.h> // 创建线程,并且在线程中执行 demo 函数 - (void)pthreadDemo { /** 参数: 1> 指向线程标识符的指针,C 语言中类型的结尾通常 _t/Ref,而且不需要使用 * 2> 用来设置线程属性 3> 新建立的线程执行代码的函数 4> 运行函数的参数 返回值: -

多线程随笔知识点总结2

多线程原理 1.使用多线程目的:将耗时操作放在后台去执行,待执行完成后,通知主线程更新UI 2.原理: 单核CPU:同一时间,CPU只能处理一个线程,换而言之,在同一时间内只有一个线程在执行 多线程同时执行:CPU快速的在多个线程间的切换;CPU调度线程的时间足够快,就造成了多线程同时执行的效果 如果线程非常多的时候:CPU会在N个线程之间切换,消耗大量的CPU资源,每一条线程调度的次数会降低,线程的执行效率也会降低 3.多线程的优缺点 优点:可以适当提高程序的执行效率;提高资源的利用率(CPU

多线程随笔知识点总结1

多线程概念 1.异步与同步 异步:多个任务操作可以同时执行适应传输数据量大,在连接过程中UI不“冻结”; 同步:代码从上到下,按顺序依次一步一步的执行,当请求的数据量小时,同步连接是一个很好的选择.UI“冻结”是它的一个缺点. 2.进程与线程 进程:进程是系统中正在运行的一个程序,每一个进程都是独立的,都运行在其专用且受保护的内存空间内,通过活动监视器可以查看mac系统中所有开启的进程 线程:线程是进程的基本执行单元,进程的所有任务都在线程中执行,一个进程至少要有一条线程,当程序启动时会默认开启

Java基础学习之-多线程学习知识点的学习

Java语言从设计之初就把多线程作为语言的核心, 至少从以下几点可以看出: 1. Object对象的wait和notify机制. 2. Thread类在lang包中. 3. synchronized volatile关键字. 虽然多线程是Java语言本身的特性,但是线程并不是Java语言独有的东西,而是操作系统的特性.Java在语言层面进行了封装,使其使用更简单. 多线程存在的价值在哪里呢? 内存读写,磁盘IO, 网络传输的速率远远低于CPU处理数据的速度.所以在大部分场景下,CPU是闲置的.有

多线程知识点总结 -NSThread4

NSThread 三种创建方式 NSThread的对象方法 - (void)threadDemo1 { NSLog(@"before %@", [NSThread currentThread]); NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(longOperation:) object:@"THREAD"]; [thread start]; NSLog(@&q

多线程总结知识点

多线程: * 计算机程序执行原理 * CPU(寄存器,控制器,运算器),内存,硬盘,光盘 * 程序,进程,线程 * 程序:就是指我们写的保存在硬盘当中的静态文件叫程序 * 进程:程序被加载进内存,准备或者正在运行的,就叫进程 * 线程:就是程序中不同的执行路径 * * 进程:只要程序加载了,就会在操作系统注册一个进程号(PID) *    *   程序代码,在没有被调用之前,都是以静态文件方式保存在硬盘中的,我们调用的时候,就会从硬盘载入到内存中 *      这个时候就认为开启了一个进程 * 

多线程随笔二(Task)

Task类是.net 4.0新加进来的特性,对原有的Thread,ThreadPool做了进一步的封装,使得.net平台上的多线程编程变得更加方便.废话不多说,进入正题. 一. Task启动 Task启动主要有以下几种用法: 1.构造Task对象,启动Task 1 Task myTask = new Task(DoSomething); 2 myTask.Start(); 2.通过Task.Factory启动Task Task second = Task.Factory.StartNew(DoS

多线程随笔

1 =================== 2 3 多线程 4 5 ================== 6 7 8 9 多线程 10 11 一.概念: 12 13 程序:(Program)(App)是一个可以运行的文件(我们写的代码) 14 15 进程:(Process)是程序执行的一个操作实体 16 17 即在系统中正在运行的一个应用程序 18 19 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 20 21 比如同时打开QQ.Xcode,系统就会分别启动2个进程 22 2

Java多线程入门知识点梳理

前言 在多核时代,高并发时代,对系统并行处理能力有很高要求.多线程就是这个时代最好的产物.通过使用多线程可以增强系统并行处理能力,提高CPU资源的有效利用:从而提高系统的处理能力.常见应用场景如:多窗口售票.生产消费模式.异步提交信息(如日志.发送消息),只要系统需要并行任务处理的场景都可以考虑使用多线程.当然它也有缺点,线程由CPU调度.程序员无法干涉.多线程的随机性,这就会增加不可控性,得出的数据重复.错乱等现象...这篇文章是从关键点上进行整理...后续会针对相关关键点制作相关系列文章..