These thread states are associated with the query cache (see Section 8.7.3, “The MySQL Query Cache”).
The server is checking whether the user has privileges to access a cached query result.
The server is checking whether the current query is present in the query cache.
Query cache entries are being marked invalid because the underlying tables have changed.
The server is taking the result of a query from the query cache and sending it to the client.
The server is storing the result of a query in the query cache.