码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-04-03 09:28:08      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:多线程synchronized

/*
	 * 线程中的方法
	 * 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


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

标签:多线程synchronized

原文地址:http://blog.csdn.net/itlqi/article/details/44837853

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!