线程中的一些基本方法使用

来源:互联网 发布:淘宝信欣美妆靠谱吗 编辑:程序博客网 时间:2024/05/17 09:27
/* * 线程中的方法 * 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


0 0
原创粉丝点击