对 146.synchronized方法与块 中使用synchronized方法,使抢票代码线程安全—改造成块
public void get() {
/*
* 注意如果是锁ticketNums是不能锁住的
* 因为synchronized锁的是类类型,如果将int的ticketNums强转为Integer对象
* 强转之后的对象是一直变化的因此不能锁住
*/
if(ticketNums <= 0) {
本文探讨了如何通过synchronized关键字确保抢票代码的线程安全性,提出在条件判断前加同步块以实现double-checking,减少不必要的线程阻塞,提高性能。同时强调了在进行线程同步时应尽量减小同步块的粒度,以平衡安全性与效率。
public void get() {
/*
* 注意如果是锁ticketNums是不能锁住的
* 因为synchronized锁的是类类型,如果将int的ticketNums强转为Integer对象
* 强转之后的对象是一直变化的因此不能锁住
*/
if(ticketNums <= 0) {
2025
567
624

被折叠的 条评论
为什么被折叠?