【问题标题】:Thread to pick from db and to delete从数据库中选择和删除的线程
【发布时间】:2013-08-06 19:04:20
【问题描述】:

我是线程新手。我希望一个线程根据一个标志不断查看我的数据库和图片记录,另一个线程在选择后删除记录。我怎样才能做到这一点? 我可以在同一个类中实现两个运行方法吗?请帮忙

public class QueManager implements Runnable {

    @Override
    public void run() {
        while(true){
            try {
                ResultSet rs = DBManager.select("select * from dbwhere READ_FLAG=0 ");
                int count = ResultProcessor.processResult(rs);
                if(count==0){
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e1) { 
                    }
                }
            } catch (SQLException e) {

            }
        }
    }

    public static void StartDemon(){
        QueManager manage = new QueManager();
        Thread t1 = new Thread(manage);
        t1.start();
    }

}

【问题讨论】:

  • 你需要展示你已经尝试过的东西,解释为什么它不起作用,并详细说明你的问题。就目前而言,这个问题不符合 SO.com 标准
  • 我们还需要知道你打算用什么语言编写这个程序。
  • @PWKad:我已经添加了我尝试过的代码。
  • @DanGrossman:我正在使用 java

标签: java mysql multithreading


【解决方案1】:

明智的做法是使用单独的类进行选择和删除。

您可以像现在一样启动:

 Thread t1 = new Thread(manage);
 Thread deleteThread = ... 
 t1.start();
 deleteThread.start();

【讨论】:

  • 两个线程可以使用同一个mysql连接对象吗?谢谢你的建议。我会试试这个。
  • 您可以做一些简单的连接池,允许您将连接从池传递到每个线程。线程在自己的进程中触发,所以我认为使用来自不同线程的相同实际数据库连接不会有太多运气。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-14
  • 2013-12-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多