线程的基本概念、基本状态——多线程技术一

多线程技术在实际开发中运用的比较多,但是也是比较难的一部分,如果能够熟练掌握,那你的薪资肯定是高的不行。

基本概念:线程就像一条要执行的线索,单线程就像只有一个在做事,多线程就像很多人在做事(很多人同时用一个资源)。一个程序中可以有多条执行线索同时执行,一个线程就是程序中的一条执行线索,每个线程上都关联要执行的代码,即可以有多端程序代码同时执行。每个程序至少都有一个线程,一个程序的main方法就是一个线程。

基本状态:就绪,运行,synchronize阻塞,wait和sleep挂起,结束。wait必须在synchronized内部使用。

线程各个状态关系如图(线程的生命周期):

线程的基本概念、基本状态——多线程技术一_第1张图片


sleep()与wait()的区别:

sleep是Thread类的方法,wait是Object类中定义的方法. 

sleep():只是睡眠,参数可以设置,单位毫秒,可以设置什么时候自动启动,sleep()只是暂停,把执行机会给其他线程,但是监控状态依然保持,到时会自动回复。调用sleep不是释放对象锁。

wait():对此对象调用wait方法导致本线性放弃对象锁,进入等待此对象的等待锁定池中,只有针对此对象发出notify方法(或notifyAll)后本线性才进入对象锁定池准备获得对象锁进入运行状态。



你可能感兴趣的:(java基础,多线程,多线程,线程基本知识,线程基本状态)