1.进程是指一个独立空间的一个应用程序
2.线程是指进程中某个程序的工程实现
3.进程就好比厨房,线程就好比厨师,多个线程好比多个厨师,共享CPU资源(客户菜式)
4.多线程的创建有两种方式:
第一种继承Thread类:重写run方法,以及在主方法中定义线程子类调用start方法执行线程
第二种通过实现Runnable接口的实现类来创建线程,在实现类中重写run方法,以及在主方法中创建Runnable实现类对象,并将此对象注入到Thread类对象
再调用对象的start方法
5.线程具有五种状态:创建状态、就绪状态、运行状态、阻塞状态、终止状态
创建状态--启动线程-->就绪状态--抢占CPU资源-->运行状态---->终止状态
运行状态--释放CPU资源-->就绪状态
运行状态--线程休眠-->阻塞状态--解除阻塞-->就绪状态
6.通过sleep方法可以使线程对象进入线程休眠,即一个输出语句要在sleep(3000)每隔三秒输出一句
7.通过join方法会将主方法中的多个线程按照顺序来输出,当调用某个线程对象的join方法时,会先执行本线程,等本线程的任务执行完后才能接着执行其他的线程的任务。
当join(5000)方法中传入参数时,那么会为调用join方法的对象抢占5秒钟的CPU资源,5,秒钟过后不管该线程的任务是否完成都必须释放资源
8.sleep()方法是一个静态方法存在于Thread类中,故可以通过Thread类调用它
9.线程的启动是通过调用start方法来启动而不是通过run方法启动,它只是一个普通方法,而不会像start方法那样其为线程抢占CPU资源
10.通过Runnable接口实现类创建线程,注意Runnable只是一个任务,不能直接创建Run拿不了对象调用start方法来执行线程的任务,应该先创建Runnable对象
再将Runnable不了对象传入到Thread类创建Thread类对象,再通过Thread类对象调用start方法来执行线程任务