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

/*
	 * 线程中的方法
	 * 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值