1、wait与sleep的区别
wait:属于Object类的方法,wait时其它线程可以访问锁定对象,相当于释放了锁。
sleep:属于Thread类的方法,sleep时其它线程不可以访问锁定对象。
2、线程与进程的概念
线程:拥有多个执行路径
进程:是一个静态的概念,如一个EXE
3、创建和启动线程的方式
创建的方法有两种:一种是继承自Thread类,覆盖public void run()方法;第二种是实现Runnable接口类,实现public void run()方法。推荐使用第二种方法。
启动线程调用start()方法,里面执行的是run()方法的实现体。
4、sleep
睡眠指定时间毫秒数,sleep时其它线程不可以访问锁定对象。
5、join
等待此被调用线程执行结束后,调用线程再往下执行。
6、yield
当前正在执行的线程对象暂时停顿,释放CPU时间片给调用线程。
7、synchronized
锁定当前方法或者代码块,则同一时刻只允许一个线程执行此方法或者代码块。开始执行时获取锁,执行完成后释放锁,执行期间,其它线程无法访问锁定对象。
8、wait
一直处于等待状态,只到调用notify方法或者notifyAll方法时,才能被唤醒。
9、notify/notifyAll
唤醒一个或者所有等待的线程。
10、interrupt
打断当前执行的线程,会触发InterruptedException,并执行完异常处理代码。
11、stop
与interrupt相比较,stop会直接打断当前执行的线程,不会触发InterruptedException异常,因此也不会执行异常处理代码。