/*
* 线程中的方法
* sleep()休眠 毫秒为单位
* yield()让出处理器时间
* join()所有线程等待调用join这个线程结束完了之后再执行
* interrupt()不适用于用于停止线程 设计初衷并不是用于停止线程 其中的isInterrupted()判断线程是否终止
* 停止线程使用“旗标”停止线程 boolean val=true; while(val){...} val=false;
* InterruptedException 异常中断
*
* //使用object 对象进行同步
// private final Object objlock = new Object();
// private int count = 10;
// @Override
// public void run() {
// synchronized (objlock) {
// while (count < 0) {
// try {
// // 当条件不满足时 将线程 wait set集合中 进行等待 不在竞争cup资源
// objlock.wait();
// } catch (InterruptedException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
// }
// System.out.println(Thread.currentThread().getName() + "="
// + (count--));
// // 唤醒当前objlock所有被等待的线程
// objlock.notifyAll();
// }
// }
*
* wait()/notify()/notifyAll() 都属于obj对象 (调用不是在同一次 同一个线程中进行操作的)
* wait() 在某些情况不满足下 将线程放如waitset中 线程等待集合
* notify() 唤醒等待中的一条线程
* notifyAll() 唤醒当前等待上的所有线程
*
* synchronized 作用域:
*
* 1、 在某个实例对象中 synchronized getMethod(){}可以阻止多个线程同时访问这个方法(
* 如果一个对象有多个synchronized方法,只要一个线程访问了其中的一个synchronized方法,
* 其它线程不能同时访问这个对象中任何一个synchronized方法
* )同一个对象
*
* 2、每个实例对象 的synchronized方法是不相干扰的。也就是说,其它线程照样可以同时访问相同类的另一个对象实例中的synchronized方法;
*
* 3、是某个类的范围,synchronized static getMethod{}防止多个线程同时访问这个类中的synchronized static 方法。它可以对类的所有对象实例起作用。
*
*
*/
更多关于synchronized http://www.cnblogs.com/devinzhang/archive/2011/12/14/2287675.html