public class OptimizeDaemon implements Runnable
{
    /**
     * Log object
     */
    private static Log log = LogFactory.getLog(
            OptimizeDaemon.class);    /**
     * 索引类.
     */
    private Indexer indexer;    /**
     * @param pIndexer 索引类.
     */
    public OptimizeDaemon(
            final Indexer pIndexer)
    {
        this.indexer = pIndexer;
    }    /**
     * 终止线程标志
     */
    private boolean flag = true;    /**
     * 终止线程
     *
     */
    public void stop()
    {
        flag = false;
    }    /**
     * 每个24小时优化一次索引
     */
    public void run()
    {
        while (flag)
        {
            try
            {
                indexer.optimize();
                Thread.sleep(5 * 60 * 1000);
            } catch (Exception e)
            {
                if (log.isErrorEnabled())
                {
                    log.error("优化索引时发生异常", e);
                }
            }
        }
    }
}调用这个类的stop()方法,怎么停止不了线程。