线程的实现
在java中提供两种技术:
1.继承Thread类并重新run方法,然后调用此类的start方法
2.实现Runable接口,然后创建这个对象并传入new Thread构造函数中,再调用start方法。
终止线程
线程的消亡不能调用stop命令,而是让run方法自然结束。stop方法是不安全的,已经被废弃。
推荐方法:设定一个标志变量,在run()方法中是一个循环,由该标志变量决定是继续执行还是跳出循环,线程结束
线程的生命周期和优先级
1.创建状态,可运行状态,不可运行状态,消亡状态
2.通过调用setPriority方法改变优先级,不能依靠线程的优先级来决定线程的执行顺序
线程的同步
解决方法:加锁(java中每一个对象都有一个锁)或者叫做监视器,当一个线程访问对象的synchronized方法时,将给对象上锁,其他的任何线程都无法再去访问该对象
线程通信
wait方法使得当前的线程必须等待,等到另一线程调用notify或者notifyAll()方法。
当前线程必须拥有当前对象的monitor,即lock,就是锁。