Syntax:
    tbl_name [AS alias]
      {READ [LOCAL] | [LOW_PRIORITY] WRITE}
    [, tbl_name [AS alias]
      {READ [LOCAL] | [LOW_PRIORITY] WRITE}] ...

If any of the tables are locked by other threads, it blocks until all
locks can be acquired.

All tables that are locked by the current thread are implicitly
unlocked when the thread issues another LOCK TABLES, or when the
connection to the server is closed. UNLOCK TABLES is also used after
acquiring a global read lock with FLUSH TABLES WITH READ LOCK to
release that lock. (You can lock all tables in all databases with read
locks with the FLUSH TABLES WITH READ LOCK statement. See [HELP FLUSH].
This is a very convenient way to get backups if you have a filesystem
such as Veritas that can take snapshots in time.)

To use LOCK TABLES, you must have the LOCK TABLES privilege and the
SELECT privilege for the involved tables.

The main reasons to use LOCK TABLES are to emulate transactions or to
get more speed when updating tables. This is explained in more detail
later.

A table lock protects only against inappropriate reads or writes by
other clients. The client holding the lock, even a read lock, can
perform table-level operations such as DROP TABLE. Truncate operations
are not transaction-safe, so an error occurs if the client attempts one
during an active transaction or while holding a table lock.

URL: http://dev.mysql.com/doc/refman/5.0/en/lock-tables.html

