一、如何创建多线程
1、继承Thread类
如果调用run方法,相当于还是只有一条main线程,会把run的线程当成一条普通对象,如下,t会执行完再往下执行,这样t就不是一个线程类,而是一个普通的对象,所以必须调用start方法,才是启动线程。start方法向cpu注册单独的线程,如果调用run方法就不会注册线程,而是当成普通的对象往下跑。
不要把主线程任务放在子线程之前,因为他会全部跑完子线程前边的代码,才会执行子线程的内容,所以要将主线程的任务放到子线程之后。
2、实现Runnable接口
3、实现Callable接口
二、线程的常用方法
1、为线程设置名字
线程有默认的名字,但是咱不能区分是哪个线程,咱们可以在执行线程中获取线程名字
注意setName一定要在start之前,否则有可能线程执行完了,名字才赋上,所以一定要在start之前setName
给线程赋名字,还有另外一种方式,Thread提供了有参构造器,如下:
2、sleep和join
sleep就是让线程暂停一下,到了时间,线程再继续执行,作用就是让程序跑的慢一点
join作用:让当前调用这个方法的线程先执行完,然后再继续往下执行,如下