在方法体上和在方法体里使用synchronized的区别
来源:互联网 发布:sql中like加数值型 编辑:程序博客网 时间:2024/05/07 11:03
学习synchronized时,我们可以把synchronized放在方法体上,也可以放在方法体内
拿servlet来说,如果放在方法体上,就会把后面的request阻塞掉:
protected synchronized void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {System.out.println("Hello");synchronized (this) {try {Thread.sleep(Integer.MAX_VALUE);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}PrintWriter writer = response.getWriter();writer.write("get call");writer.flush();}
发多个请求都只能看到一个Hello
如果把synchronized放在方法体内则不会出现以上情况
protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {System.out.println("Hello");synchronized (this) {try {Thread.sleep(Integer.MAX_VALUE);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}PrintWriter writer = response.getWriter();writer.write("get call");writer.flush();}
0 0
- 在方法体上和在方法体里使用synchronized的区别
- synchronized 用在实例方法和类方法的区别
- Java多线程之Synchronized应用在static和非static方法上的区别
- Java的synchronized加在方法上或者对象上有什么区别?
- Java的synchronized加在方法上或者对象上有什么区别?
- Java语言中synchronized 修饰在 static方法和 非static方法的区别
- synchronized 修饰在 static方法和 非static方法的区别
- synchronized 修饰在 static方法和非static方法的区别
- Java中synchronized 修饰在 static方法和 非static方法的区别
- Java中synchronized 修饰在static方法和非static方法的区别
- synchronized方法和synchronized块的区别
- synchronized块和synchronized方法的区别
- 怎样在静态方法中使用 synchronized
- 怎样在静态方法中使用 synchronized
- java里 对线程的wait方法只有在synchronized下才有用吗?
- plsql在win64上使用的方法
- final和static使用的再思考,以及其在“类.方法”和“对象.方法”使用方式上的的区别
- 多线程synchronized和synchronized static方法的区别
- 酷派手机修改log输出级别的办法
- C# 数据库实例以及winform编程基础
- Unity3D Vuforia Android 拨打电话
- OpenCV2学习笔记(八):使用霍夫变换检测直线和圆
- 编辑器
- 在方法体上和在方法体里使用synchronized的区别
- 控制台中执行mvn命令后提示‘cmd’不是内部或外部命令,也不是可执行程序或批处理文件
- Android自学笔记(1)
- HMM原理简述和使用说明
- iOS UI 调试工具Reveal破解方法
- UVA 11354 Bond (MST + LCA)
- 寒假小程序(倒计时 )
- 1025. PAT Ranking
- synchronized——Java多线程的同步问题