上图:
6.sleep和wait区别
1. sleep方法,是属于Thread类的,而wait方法是属于Object类。
2.sleep方法导致了程序暂停执行指定的时间,让出cpu的其他线程,但是他的监控状态依然保持,当到了指定的时间又会自动恢复运行状态。
3.在调用sleep方法的过程中,线程不会释放对象锁。
4.调用wait方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定吃,只有针对次对象调用notify方法,本线程才进入对象锁定池准备获取对象锁进行运行状态。
7.start和run区别
1.start方法启动线程,真正实现了多线程运行,这时无需等待run方法体执行完毕,可以直接继续执行下面的代码。
2.通过调用Thread类的start方法来启动一个线程,这时此线程处于就绪状态,并没有运行。
3.方法run称为线程体,它包含了要执行的这个线程的内容,线程就进入了运行状态,开始运行run函数当中的代码,run方法运行结束,此线程终止,然后CPU再调度其他线程。
8.Java后台线程