又简单又好用的同步控制

上代码

package com.enfang;

/**
 * 一种简单的加锁方式,定义一个属性 boolean lock = false;
 * 当方法m1()执行的前,让lock = true;执行后将lock = false;
 * 同时在需要加锁的那个方法如下run(),先判断lock 是否等于false;
 * 当lock等于false的时候,才执行,否则只能等待m1()执行后才去执行run();
 * 
 * @author Administrator
 *
 */
public class SimpleLock extends Thread{
	boolean lock = false;
	public void m1() throws Exception{
		lock = true;
		System.out.println("i am m1!");
		Thread.sleep(10000);
		lock = false;
	}
	@Override
	public void run(){
		try {
			Thread.sleep(1000);
		} catch (InterruptedException e1) {
		}
		if(lock==true){
			System.out.println("execute m1 now....");
			try {
				Thread.sleep(10000);
			} catch (InterruptedException e) {
			}
			System.out.println("i am m2!");
		}else {
			System.out.println(1111);	
			System.out.println("i am m2!");
		}	
	}
	
	public static void main(String[] args) throws Exception {
		SimpleLock sl = new SimpleLock();
		Thread t = new Thread(sl);
		t.start();
		sl.m1();
	}
}

在多线程中,这并不是一个好方法,只是编程中的一个使用的小技巧,这里使用线程主要是模拟两个客户端同时调用m1()和run()这种情况,实际使用中不需要加线程。刚入门还望多多包含。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值