有两个共享变量举个例子,领导安排活,发薪水,工人做活,拿工资;且假设活和工资足够工人,领导谈完项目才能拿到钱,工人做完工作才能拿工资
private int jobs; private int salaries; private final Object lockObjA = new Object(); private final Object lockObjB = new Object(); public void leader(int n) { synchronized (lockObjA) { this.jobs += n; // todo plan synchronized (lockObjB) { this.salaries += n; // todo deal } } } public void worker(int n) { synchronized (lockObjA) { this.jobs -= n; // todo job synchronized (lockObjB) { this.salaries -= n; // todo deal } } }
不就是那张图
找工作需要经验,经验需要工作获得。
小绿龙,原来你在这里藏着
Sign in to make a reply
b3tter
有两个共享变量举个例子,领导安排活,发薪水,工人做活,拿工资;且假设活和工资足够工人,领导谈完项目才能拿到钱,工人做完工作才能拿工资