1、创建多线程:
- extends Thread
- implements Runnable:Thread(Runnable target)
2、常用方法:
- super(name)/setName(name):设置线程名称
- Thread.currentThread():返回当前正在执行的线程对象
- start():就绪状态,有执行的资格,没有执行权(只能调用一次)
join():线程加入,等待该线程终止再运行其他线程
示例代码:tj1.start(); try { tj1.join(); } catch (InterruptedException e) { e.printStackTrace(); } tj2.start(); tj3.start();
- stop():中断线程
- interrupt():中断线程
区别:stop()方法执行后,该线程就停止了,不再继续执行了
但是interrupt()方法执行后,它会终止线程的状态,还会继续执行run方法里面的代码
比如:start()后立马跟stop(),一般run()里面的内容没有执行,但interrupt()还是会执行的
3、多线程安全问题:
问题的产生:每个线程的执行权都是有cpu分配的,不需要等待线程执行完才执行其他线程,这就会出现,前线程没执行完后面线程就执行了
解决方案用:synchronized