多线程和同步的几种实现方法
多线程,分别是继承Thread类与实现Runnable。
同步的实现方法有五种,分别是synchronized、wait与notify、sleep、suspend、join
synchronized:一直持有锁,直至执行结束。
wait():使一个线程处于等待状态,并且释放所持有的对象的lock,需捕获异常。
sleep():是一个正在运行的线程处于睡眠状态,是一个静态方法,需捕获异常,不释放锁。
notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切唤醒某一个等待状态的线程,而是由JVM确定唤醒那个线程,而且不是按优级。
notityAll():唤醒所有处入等待状态的线程,注意并不是给所有线程一个对象的锁,而是让他们竞争。