- 博客(2)
- 收藏
- 关注
原创 synchronized 重量级锁分析
比如说在比较的时候,俩个线程同时进行了比较,这俩个线程同时发现state = 0,那么这俩个线程同时都去会执行 state = 1的操作,这俩个线程都认为自己拿到了锁,那么这个就产生了并发的问题了。因为如果先执行 state = 0, 那么就相当于先释放掉这把锁了,另外一个线程就会执行 lock 成功,拿到锁,持有者 = 当前线程。在unlock操作中,其实也是一个比较赋值的操作,首先判断当前持有者是不是当前线程,如果是,再进行赋值。自旋锁不需要进入到内核态,整个程序的执行都是在用户态的,包括cas。
2023-05-11 15:30:25 357 1
原创 重定向和转发的区别
如果是采用了request.getRequestDispatcher().forward(request,response),那么操作前后的地址栏都不会发生改变,仍然是修改的控制器,如果此时再对当前页面刷新的话,就会重新发送一次请求对数据进行修改,这也就是有的人在刷新一次页面就增加一条数据的原因。2.重定向是两次请求的过程,而转发只有一次.由此可见重定向是由浏览器完成的,转发是服务器内部完成的。原则上: 要保持request域的数据时使用转发,要访问外站资源的时候用重定向,其余随便;
2023-02-16 14:51:42 302 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人