一、下面,我们来学习线程的属性
![通知](https://i-blog.csdnimg.cn/direct/05472483b22a4dd89f33eea5f96a97d3.png#pic_center)
1.// 当线程结束之后 不能再次使用
![通知](https://i-blog.csdnimg.cn/direct/3b6ef2fe6f524054859cd2ce695728f3.png#pic_center)
这个demo方法执行完,这个线程就死亡了,这个线程死亡了,这个thread对象就销毁了,
这个对象销毁了,是不是就不能再用了,
再用的话,你是不是再次去alloc-init,
我现在再开一个线程,
![通知](https://i-blog.csdnimg.cn/direct/8be5d2fb68c045c39506f032a21bfe52.png#pic_center)
这两个线程,都来输出这个循环变量,i,
![通知](https://i-blog.csdnimg.cn/direct/f34e4303fae0420f8e8ccbf1ca91c18d.png#pic_center)
运行一下,
![通知](https://i-blog.csdnimg.cn/direct/9a576b8d17374dcaac6e01caa90d741b.png#pic_center)
输出0、0、1、1、2、2、它为什么会这么执行呢,
通过这个输出的结果,我们可以回想起来线程的原理,线程是切换执行的,
执行一次thread1、执行一次thread2、
输出第一个0的那个人,一定是thread1、吗?
不一定,我现在打印一下当前线程,
NSLog(@“%d----%@”,I,[NSThread currentThread]);
![通知](https://i-blog.csdnimg.cn/direct/b24928abadb9482983e20b0d74263ab1.png#pic_center)
运行一下,
![通知](https://i-blog.csdnimg.cn/direct/0a23910c50544759aaafa2da721148f0.png#pic_center)
number = 2、number = 3、找个 name是什么东西呢,
之前我们看过,主线程的name = main,
子线程是不是都有一个name = null,
我们现在看到的是number = 2、number = 3、
当线程特别特别多的时候,光数数,是不是比较麻烦,
所以我们可以给它一个name , 吧,