原创

线程共享资源的问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://xxlcube.blog.csdn.net/article/details/17613725



package demo;


public class Demo implements Runnable {

	private int apple = 5;
	
	synchronized boolean  getApple() {
		if(apple>0) {
			apple--;
			System.out.println(Thread.currentThread().getName()+"拿走了一个苹果!还剩"+apple+"个苹果!");
			return true;
		}
		return false;
	}
	
	@Override
	public void run() {
		boolean flag = getApple();
		while(flag) {
			flag = getApple();
		}
		System.out.println(Thread.currentThread().getName()+"拿完了苹果!");
	}
	
	public static void main(String[] args) {
		Demo d = new Demo();
		
		Thread one = new Thread(d);
		Thread two = new Thread(d);
		one.setName("Simon");
		two.setName("Bella");
		one.start();
		two.start();
	}
	
}

达到线程安全的共享apple这个变量,关键在于关键字synchronized,读者可以自行删除该关键字,查看运行结果。

文章最后发布于: 2013-12-27 16:09:50
展开阅读全文
0 个人打赏
私信求帮助

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 酷酷鲨 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览