【Java语法】synchronized

来源:互联网 发布:韩国的淘宝网站 编辑:程序博客网 时间:2024/04/29 10:09

Java 语法  synchronized(一个类)

Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。

例子 在一个Servlet里面的get方法

response.setContentType("text/html");PrintWriter out = response.getWriter();out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");out.println("<HTML>");synchronized(this){i++;try{Thread.sleep(1000*10);//待机10秒out.println("  <BODY>");out.println(i);out.println("  </BODY>");out.println("</HTML>");out.flush();}catch(Exception e){e.printStackTrace();}}out.close();
现在我浏览器新建2个窗口,同时AB同时访问 这个Servlet.

假设A先到达,B慢了0.1秒到达


浏览器显示结果为:A窗口十秒钟后显示i=1

B窗口二十秒钟之后显示i=2



整个网站假若采用synchronized,那么一个时刻,只有一个人在里面看着。

1 0
原创粉丝点击