码迷,mamicode.com
首页 > 编程语言 > 详细

线程小结一

时间:2019-04-08 01:16:54      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:自定义   art   没有   under   自己   局限   ble   代码   nbsp   

一、进程与线程

1.什么是进程: 正在运行的程序(正在运行的一大段代码)

程序: 一段代码

 

什么是线程:

1.正在运行的一小段代码

2.1个进程至少有1个线程

 

 

在我们计算机中,运行了很多程序,但是对于电脑来说,它只看到很多的线程,它只是来回频繁切换读取线程中的内容

 

我们是控制不了cpu的执行线程顺序,因为执行顺序,完全取决于cpu

 

cpu以线程为单位来回进行频繁切换

 

在同一时间片上,1个cpu只能执行1个线程

 

时间片:一个很微观的时间,比毫秒还要短的时间

 

 

2.怎么去创建线程对象

1.继承

class  类   extends Thread{

public void run(){

线程的主体

}

}

 

//创建线程对象

l = new 类();

//启动线程

l.start();

 

2.实现Runnable接口

class 类  implements Runnable{

public void run(){

线程主体

}

}

 

 l = new 类();

//线程对象

Thread t1 = new Thread(l);

Thread t2 = new Thread(l);

Thread t3 = new Thread(l);

t1.start();

t2.start();

t3.start();

 

3.Thread类的结构

1.run方法              线程的主体,我们把核心代码放到run方法内部

2.start方法         启动一个线程,让线程处于一个活跃状态,拥有获取cpu的执行权利

 

4.主方法一共有多少个线程

严格意义来说:

1.主线程

2.垃圾回收线程(一般我们不考虑垃圾回收线程)

 

5.线程的注意事项:

1.调用run方法和调用start方法的区别:

调用run方法,它是不会启动一个独立的线程,它仅仅只是一个普通方法的调用

调用start方法,它会开启一个独立的线程,让该线程处于活跃状态,可以拥有获取cpu的执行权利

 

2.自己启动的线程和主线程有关系吗

答:没有任何关系,创建的线程和它的环境线程是没有任何关系的。一旦创建好了之后,它就是一个独立的线程

 

6.创建线程2种方式,它们有什么区别呢?

 

1.继承: 它有局限性,因为类与类之间是继承关系,并且只能是单继承

 

2.实现: 它扩展性较强,因为类与接口之间是实现关系,并且是多实现,既能保留原有的业务逻辑,也可以对功能进行扩展

 

 

7.sleep  休眠, 休眠指定的时间,在这段时间中,它放弃cpu的执行权利,当休眠时间已过,该线程又处于活跃状态,又拥有了获取cpu的执行权利

 

8.优先级:

1.主线程的默认优先级是5

2.自定义线程默认的优先级是和当前环境线程的优先级一致

优先级范围:[1,10]

优先级的值越大  就越先执行完毕

线程小结一

标签:自定义   art   没有   under   自己   局限   ble   代码   nbsp   

原文地址:https://www.cnblogs.com/limengkun/p/10668167.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!