千万千万不要把java中的线程状态和操作系统中的线程状态弄混淆,如果线程状态没有搞清楚,并发编程就无从谈起。 在Java JDK类库中的Thread类里,只定义了6种状态。 Blocked:阻塞状态,等待锁的释放 New:未启动状态 Runnable:可运行状态,包括(运行和就绪状态) Termin Read More
线程让步Thread.yield():当前线程已经把重要的部分执行完毕,此时可以切换线程。 class MyThread implements Runnable { public void run() { int i = 0; while(i < 6) { System.out.println(Th Read More
Thread.sleep(ms):当前线程进入Time—Wait状态,并等待指定时间。 与wait的区别:wait只能用于同步块中,wait释放锁。 class MyThread implements Runnable { public void run() { int i = 0; while(i Read More
join():当前线程等待子线程终止 class MyThread implements Runnable { public void run() { int i = 0; while(i < 100) { System.out.println(Thread.currentThread() + " Read More
synchronized关键字定义同步代码块活方法,进入同步代码块的线程获得该对象的锁。锁没有释放,其他线程阻塞,锁释放,其他线程争锁。 实例锁:synchronized修饰非静态方法,线程获得普通对象的锁。 类锁:synchronized修饰静态方法,线程获得Class对象的锁。 class My Read More