标签:osi sig exec future ati tor 资源 释放 src
public int getBalance() {// synchronized return balance; } public void deposit(int money) {// synchronized lock.lock(); try { balance += money; plus.signalAll(); } finally { lock.unlock(); } }
同步方法就是在方法前加关键字synchronized,实现加锁。同步代码块则在方法内部加锁。
class Counter { private static int id = 0; public synchronized static void addId() { id++; } public synchronized static void subtractId() { id--; } public static int getId() { return id; } }
这个代码无法获得对象锁,多个线程start(),竞争对象锁,某一线程竞争获得对象锁,其余线程在等待池中等待线程释放对象锁,当线程释放对象锁其余线程又开始竞争对象锁,直到程序结束。
使用wait ()、notify()、notifyAll()关键字实现线程之间的通信,进而实现线程的协同工作;为了止多个线程访问同一资源所引起的冲突。
//201521123089 class Counter { private static int id = 0; public synchronized static void addId() { id++; } public synchronized static void subtractId() { id--; } public static int getId() { return id; } }
不正常,没有实现实现线程间的通信、协同。
题目集:多线程(4-4到4-10)
在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图
201521123089 《Java程序设计》第11周学习总结
标签:osi sig exec future ati tor 资源 释放 src
原文地址:http://www.cnblogs.com/Abe1/p/6818089.html