多线程基础(三)NSThread基础
2023-09-14 08:57:57 时间
如何使用NSThread创建新线程
![](http://images2015.cnblogs.com/blog/784420/201512/784420-20151221231016968-1619306948.png)
创建线程之后是默认不执行的状态
![](http://images2015.cnblogs.com/blog/784420/201512/784420-20151221231117062-1215703217.png)
创建三个线程:
![](http://images2015.cnblogs.com/blog/784420/201512/784420-20151221231204999-2046112376.png)
![](http://images2015.cnblogs.com/blog/784420/201512/784420-20151221231247359-1948315395.png)
通过name属性区别这些线程
![](http://images2015.cnblogs.com/blog/784420/201512/784420-20151221231258468-1906481977.png)
接下来就是通过设置线程的优先级来设置线程的被使用频率的高低 不设置默认是0.5
![](http://images2015.cnblogs.com/blog/784420/201512/784420-20151221231324281-243871746.png)
第二种使用NSThread创建线程,分离出一条线程
![](http://images2015.cnblogs.com/blog/784420/201512/784420-20151221231421890-1683228229.png)
没有返回值,就没有办法拿到这个线程对象,就没办法设置相关的属性
第三种方法:开启一条后台线程
![](http://images2015.cnblogs.com/blog/784420/201512/784420-20151221231451202-253511978.png)
优点:不需要手动开启,就是start
总结一下:
![](http://images2015.cnblogs.com/blog/784420/201512/784420-20151221231516640-8087949.png)
自定义线程:
![](http://images2015.cnblogs.com/blog/784420/201512/784420-20151221231529359-1756615019.png)
重写dealloc方法,然后在dealloc方法中写打印方法,可以用来验证:当任务执行完毕之后,线程对象会被销毁。
如果要想让线程不销毁,只要有个strong指针指向它,但是即使它没有被销毁,任务执行完毕之后已经无法再执行新的任务了。
![](http://images2015.cnblogs.com/blog/784420/201512/784420-20151221231548077-1042985405.png)
6. 多线程基础 对一个程序的运行状态, 以及在运行中所占用的资源(内存, CPU)的描述; 一个进程可以理解为一个程序; 但是反之, 一个程序就是一个进程, 这句话是错的。
iOS开发多线程篇-NSThread 上篇我们学习了iOS多线程解决方式中的NSOperation,这篇我主要概况总结iOS多线程中NSThread的解决方式和基本用例
多线程基础 需要了解的概念 并发和并行 并发侧重于任务的交替执行,同一时间只能执行一个任务;而并行是任务的同时执行,统一时间可以有多个任务被执行。 单核CPU与多核CPU下任务表现分别为并发与并行。 临界区用于表示一种公共资源或是共享数据,可以被多个线程使用,但是同一时间内,只能有一个线程在使用它。
相关文章
- 用多线程并发实现不重复的N个伪随机自然数
- JAVA多线程和并发基础面试问答
- java基础知识回顾之java Thread类学习(五)--java多线程安全问题(锁)同步的前提
- 多线程基础(六)GCD基础
- C++多线程编程
- 33、多线程断点下载的实现&界面的更新
- 线程池Executors创建多线程案例
- 【多线程,详细demo】Java多线程基础学习(二)
- Qt多线程间的互斥
- 在Qt(C++)中使用QThread实现多线程
- Qt多线程间信号槽传递非QObject类型对象的参数
- JAVA多线程之UncaughtExceptionHandler——处理非正常的线程中止
- linux 多线程基础3
- 014-多线程-基础-Exchanger-行线程间的数据交换
- 012-多线程-基础-非阻塞算法相关技术简介
- 011-多线程-基础-基于AbstractQueuedSynchronizer自定义同步组件
- 012-多线程-JUC集合-Queue-SynchronousQueue和LinkedTransferQueue
- 004-多线程-基础-同步问题引出、同步问题解决、死锁、线程间通信(wait/notify)、生产者与消费者
- 003-多线程-基础-其他【命名和取得、休眠、优先级、线程状态、线程中断、最大线程数量、Thread与Jvm虚拟机栈】
- 002-多线程-基础-实现方式【thread、runnable、callale、thread和runnable对比】
- 大鱼吃小鱼小游戏(Java版代码,JavaSwing+多线程+接口)
- Jmeter如何实现多线程组并发测试?