停止线程 线程的死亡有两种原因: 1.:运行结束。 2.:强制终止。可以通过调用stop方法或者destroy方法来终止线程,但是不推荐使用 阻塞状态 某些在运行的线程暂时将自己的CPU让出,暂时停止自己的运行,进入阻塞状态 sleep方法 : 需要指定等待时间,让当前线程在指定时间内暂停执行,进入阻塞状态。不过,sleep不会释放锁 yield方法 让当前线程重新回到可执行的状态,让出CPU的使用权,从运行状态直接进入就绪状态,让cpu重新挑选线程。(即:给大家一个重新公平的竞争机会)。但是也不会释放锁 join方法 使当前线程等待调用join方法的线程结束才能继续执行
线程同步 当前线程未结束时,别的线程一直处于就绪状态,直至该线程完成 用法: 1.synchronize方法 在方法声明的时候加上关键字来声明 synchronized 方法控制对类成员变量的访问:每个对象对应一把锁,每个 synchronized 方法都必须获得调用该方法的对象的锁方能执行,否则所属线程阻 塞,方法一旦执行,就独占该锁,直到从该方法返回时才将锁释放,此后被阻塞的 线程方能获得 该锁,重新进入可执行状态。 缺陷::若将一个大的方法声明为synchronized 将会大大影响效 率,
2.synchronize块 在代码块前加上 synchronized 关键字,并指定加锁的对象 死锁 死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而 造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于 死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。