JAVA 多线程 锁

java\u4e2d\u591a\u7ebf\u7a0b\u7684\u9501\u662f\u4ec0\u4e48\u6982\u5ff5\uff1f\u8c01\u80fd\u4e00\u8a00\u4ee5\u853d\u4e4b\uff1f

\u4e00\u53e5\u8bdd\uff1a\u4e09\u4e2a\u548c\u5c1a\u6253\u6c34\u559d\uff01\u6253\u4e2a\u6bd4\u55bb\u6876\u5c31\u662f\u9501\uff0c\u62ff\u5230\u6876\u7684\u4eba\u4e0d\u4f1a\u6e34\u6b7b\uff0c\u591a\u7ebf\u7a0b\u5c31\u662f\u4f60\u62ff\u4e00\u4f1a\uff0c\u6211\u62ff\u4e00\u4f1a\uff0c\u7ebf\u7a0b\u7b49\u5f85\u5c31\u662f\u4e00\u4e2a\u548c\u5c1a\u559d\u4e86\u4e00\u4f1a\uff0c\u522b\u7684\u548c\u5c1a\u5728\u7b49\uff0c\u53ef\u80fd\u80fd\u559d\u5230\u6c34\u3002\u6b7b\u9501\u5c31\u662f\u4e09\u4e2a\u548c\u5c1a\u4e92\u76f8\u6253\u67b6\uff0c\u90fd\u62fd\u7740\u5bf9\u65b9\u7684\u624b\u8c01\u90fd\u559d\u4e0d\u5230\uff0c\u7761\u7720\u5c31\u662f\u4e00\u4e2a\u548c\u5c1a\u8bf4\u6211\u53ef\u4ee5\u8ba9\u522b\u4eba\u5148\u559d\uff0c\u81ea\u5df1\u53bb\u7761\u4f1a\u89c9\u53bb\uff0c\u56de\u6765\u540e\u8fd8\u5f97\u770b\u522b\u4eba\u7684\u8138\u8272\u3002

\u4ee3\u7801\u5199\u7684\u5c31\u6709\u95ee\u9898
\u56e0\u4e3asynchronized\u5199\u5728\u7ebf\u7a0b\u91cc\u4e86,\u4e5f\u5c31\u662f\u8bf4,\u4f60new\u4e86\u591a\u7ebf\u7a0b,\u5b83\u4eec\u90fd\u5728\u6267\u884c\u81ea\u5df1\u7684\u4ee3\u7801

\u800c\u5e76\u4e0d\u662f\u591a\u7ebf\u7a0b\u6267\u884c\u540c\u4e00\u6bb5\u4ee3\u7801,\u6240\u4ee5\u8fd9\u91cc\u5e76\u6ca1\u6709\u8d77\u5230\u540c\u6b65\u7684\u4f5c\u7528
\u4f60\u5e94\u8be5\u628a\u8fd9\u4e2a\u65b9\u6cd5\u653e\u5230\u7ebf\u7a0b\u7684\u5916\u9762\u53bb(\u653e\u4f60\u7684App\u8fd9\u4e2a\u7c7b),\u8ba9\u591a\u4e2a\u7ebf\u7a0b\u53bb\u8c03\u7528\u5c31\u80fd\u4f53\u73b0\u51fa\u6765\u4e86

你从对象自身出发去想 反正一个对象就只有一把锁 只要有线程来访问它 就会上锁 其他的所有线程在此期间都不能访问上锁的对象或方法 就像一间房子,你进去后上了锁 不管是你自家的人 还是其他人都进不去 只有你自己在屋里

大个比方:线程一访问这个update方法,会给它加一把锁,访问完了,锁释放,其它线程平等竞争,抢赢了的可以访问,在被锁定期间,其它任何线程都不能访问它,而不仅仅是这个用户的线程(前提是访问的同一个update哦),至于等待的线程是不是排队,我还得去查查

其实,应该明白,锁住了方法实质是锁住了方法中的变量,让其他线程不能访问此变量。OK,接下来解释下,如果锁住一个方法,而且有很多线程要进行访问,谁先访问,没有设置优先级的情况下,这取决于JVM,这不是我们能决定的,所以说,把方法锁了,是所有想调用此方法的线程都要排队,按照特定的顺序进行访问,每次只能有一人访问,访问完立即会归还得到的钥匙,随后JVM把钥匙给同优先级的线程让它继续访问

扩展阅读:java入门网站 ... java秒杀 多线程实例 ... java多线程开发 ... java 多线程处理大量数据 ... java多线程面试题及答案 ... java官网网址 ... java spring ... java多线程 多进程案例 ... java 创建线程 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网