首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java多线程

Java多线程
EN

Stack Overflow用户
提问于 2010-12-29 14:11:39
回答 4查看 953关注 0票数 0

我有一个需求,我必须访问数据库并将这些值放在一个列表中,然后使用多个threads.currently打印这些值。我使用两个线程,我的输出是这样的:每个线程建立单独的数据库连接,并迭代整个列表,因此在output中,我得到了解决这个问题的每个值twice.pl帮助

EN

回答 4

Stack Overflow用户

发布于 2010-12-29 14:20:43

为什么不使用连接池呢?http://sourceforge.net/projects/c3p0/

票数 1
EN

Stack Overflow用户

发布于 2010-12-29 14:21:18

古老的分而治之的技术。从逻辑上将数据库分成两半(假设您从DB读取100个值,然后让每个线程读取50个值)。将数据合并回一个列表,然后打印出该列表。

票数 1
EN

Stack Overflow用户

发布于 2010-12-29 14:44:37

//这是我的代码

代码语言:javascript
运行
复制
class Conn
{ Connection getDBConnection(String serverName,String url,String userid,String password) {
    Connection conObj = null;
    try {Class.forName("oracle.jdbc.OracleDriver");
        conObj = DriverManager.getConnectionurl,userId,password);
        return conObj;}
            catch(Exception e){
            }}}
        class listObj extends Conn
{ List lst;
Connection con;
String query;
public  List resultList() {
    try{//connection code
    query = "select * from test";
      ResultSet rs = st.executeQuery(query);
     lst=new ArrayList();
        while(rs.next())
            {lst.add(rs.getInt(1);}return lst;
     } catch(Exception e)
{ }
     }}
 class Thread1 extends listObj implements Runnable
{ public void run() 
     {List ls=null;
        try {ls=(ArrayList)resultList();
        } catch (Exception e) {
            e.printStackTrace();
        }
          ListIterator it= ls.listIterator();
         while (it.hasNext()){
            System.out.println(it.next());
         } }}    
   class TestMain extends listObj {
    p.s.v.m(String a[]) throws Exception {
        Thread t1=new Thread(new Thread1());
        Thread t2=new Thread(new Thread1());
        t1.start();t2.start();}}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4551876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档