程序:进程所执行的依据,模板(期望步骤结果)
进程:执行的过程
线程:过程的分支
举例:制作一个蛋糕,蛋糕的制作方法材料等可以理解成程序,制作这个蛋糕就是进程,烤主体,调奶油等就是一个个线程
2.实现
两个方法可以实现多线程
1)继承Thread类
在类中重写run方法,创建对象后调用start方法开启线程(注意直接调用run方法是开启不了线程的)
2)实现Runnable接口
同样在实现类中重写run方法,创建对象后将该对象作为newThread的参数,再通过start开启线程
3. 线程名
setName() 设置线程名
getName() 获取方法调用者的线程名
currentThread()获取当前线程名
4.线程控制
主要是三个方法:
sleep:后面给定一个参数作为线程暂停的毫秒数,时间到达自动到达就绪状态
join:等待这个线程死亡
setDaemo:设置为守护线程
个人理解:
如果开启了线程,那么在内存中创建了两个线程栈,第一个是用于储存主线程的栈A,另一个用于存放其他线程的线程栈B,每当开启一个线程,则将其放入线程栈 B中,这些线程共同抢占cpu资源,主线程结束后进程不会马上结束,要在jvm判断该进程是否只剩守护线程的时候才会结束进程。
5.线程生命周期
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |