高并发抢单时,锁表的疑惑?

在网上看到的一个例子,有点不是很理解。

<?php  
/** 
模拟秒杀活动-- 商品100件 
CREATE TABLE a 
( 
    id int comment '模拟100件活动商品的数量' 
); 
INSERT INTO a VALUES(100); 
模仿:以10的并发量访问这个脚本!    使用apache自带的ab.exe软件 
 */  
error_reporting(0);  
mysql_connect('localhost','root','admin123');  
mysql_select_db('test');  
  
# mysql 锁  
mysql_query('LOCK TABLE a WRITE');// 只有一个客户端可以锁定表,其他客户端阻塞在这  
$rs = mysql_query('SELECT id FROM a');  
$id = mysql_result($rs, 0, 0);  
if($id > 0)  
{  
    --$id;  
    mysql_query('UPDATE a SET id='.$id);  
}  
  
# mysql 解锁  
mysql_query('UNLOCK TABLES');  
疑惑:如果是锁表的话,其他用户就不能查询这个表了,只有解锁之后才能查询,那后面的人岂不是要等很久才能够查询了吗
查看回复