我正在尝试编写一个java程序,它从数据库中读取信息,并为表的每一行创建一个新线程.所以我不知道我需要多少线程.到目前为止我有这个:
con = DriverManager.getConnection(url, user, passwd);
pst = con.prepareStatement("select hostname, ipadress, vncpassword from infoscreens");
rs = pst.executeQuery();
int i=0;
while (rs.next()) {
i++;
Thread tread[i] = new Savescreenshots(rs.getString(1),rs.getString(3),rs.getString(2));
tread[i].start();
}
但问题是这不起作用.我需要有可能为表中的每一行创建一个新线程.剂量任何人都知道如何做到这一点
谢谢和问候
解决方法:
你需要一个动态增长的容器来处理一组未知的大小 – 例如:List:
List threads = new ArrayList();
while (rs.next()) {
Thread tread = new Savescreenshots(rs.getString(1),rs.getString(3),rs.getString(2));
tread.start();
threads.add(thread);
}
此时,程序创建和启动的所有Thread对象都是线程列表的元素.你可以枚举它们并做任何你打算用它们做的事情(例如等待它们完成):
for (Thread thread : threads) {
thread.join();
}
标签:java,mysql,loops,multithreading
来源: https://codeday.me/bug/20190613/1231555.html