当一个方法有synchronized来修饰时,如果遇到多个客户端要同时访问这个方法的时候,就会进行同步处理,让各个客户端串行地访问同一段代码...
WEB程序可能有并发的多个用户同时访问.<%!%>中定义的变量是共享的.这同时并发的用户都可以修改.为了确保数据的正确性.必须一个接一个来修改.否则数据会出现错误.synchronized就保证了这一点.多个用户被WEB服务器视为多个线程.当一个线程在修改synchronized中数据时候,其他线程必须等待.知道此县城释放占有的共享资源.所以可以保证数据的正确性.即所谓的one by one.
<%@ page contentType="text/html;charset=gb2312"%>
<html>
<head>
<title>简单计数器</title>
</head>
<body>
<%!
int counter=0;
synchronized void counterFuc()
{
counter=counter+1;
}
%>
<%counterFuc();%>
简单计数器<br>
你是本站第<%=counter%>位访问者
</body>
</html>