java中多线程的锁是什么概念?谁能一言以蔽之?

2025-02-26 21:22:30
推荐回答(3个)
回答1:

一句话:三个和尚打水喝!打个比喻桶就是锁,拿到桶的人不会渴死,多线程就是你拿一会,我拿一会,线程等待就是一个和尚喝了一会,别的和尚在等,可能能喝到水。死锁就是三个和尚互相打架,都拽着对方的手谁都喝不到,睡眠就是一个和尚说我可以让别人先喝,自己去睡会觉去,回来后还得看别人的脸色。

回答2:

假设
你银行账户上有1000元钱
你老婆拿银行卡去ATM机上去取这1000元钱
银行数据库系统先确认你的账户上有这1000元
然后,银行拿钱给你老婆
当你老婆拿到钱,并且银行数据库正要从你的账户上扣除这·1000元钱还没执行的时候,
你到银行柜台拿着存折去取1000元,
因为这时你老婆虽然拿到钱,但银行数据库还没有从你账户上扣除,你账户上依然有着1000元
所以,银行柜台确认你账户上有1000元,
so……你的银行账户有只有1000元,但只要你时机拿捏得当,你就能从该死的银行那里取到2000元。
之所以能发生这种事情,是因为有两个线程同时访问同一个数据,造成混乱。
锁,
它的功能就是保证只有一个线程访问一个数据。

回答3:

Synchronized...... jdk5 Lock