灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:2333回复:0

临界资源访问

楼主#
更多 发布于:2012-09-08 09:38

package javase2.Day5;

import javase2.Day5.Table.Person;

/**
* 临界资源访问
* */
public class SyncDemo1 {
    public static void main(String[] args) {
        Table table = new Table();
        Person p1 = table.new Person();
        Person p2 = table.new Person();
        p1.start();
        p2.start();
    }
}
www.atcpu.com
class Table {
    int beans = 20;

    public synchronized int getBean() {
        if (beans == 0)
            throw new RuntimeException("没了");
        Thread.yield();
        return beans--;
    }

    class Person extends Thread {
        public void run() {
            while (true) {
                int bean = getBean();
                System.out.println(getName() + "拿到:" + bean);
                Thread.yield();
            }
        }
    }
}

喜欢0 评分0
游客

返回顶部