小弟目前做了这样一个小东西数据库里有一组数据 是车牌号+车牌类型的一万多条数据 车牌类型大部分为空 
程序与要从数据中将车牌和车牌类型 拼上url 访问车辆违章公布网站
然后将网站的返回结果 取出写入数据库 现在问题是数据库中车牌号对应的类型太少了 而网站的类型比较多  
那就需要尝试 车牌和所有类型拼成n多url然后依次访问该网站 取回结果 速度很慢 想用多线程 进行这个操作 可是多线程用得不太熟 哪位 有好的办法提高一下运行速度 或者告诉我一下 这个多线程要怎样写

解决方案 »

  1.   

    把你的处理类包装成一个线程类,然后用一个主线程去启动多个子线程就可以了。
    怎样包装成线程类?继承Thread,把处理代码写到run方法里。
    怎么启动子线程类?new一个线程类,再调用它的start方法。建议:主线程类有一些同步的方法,比如子线程可以调用该方法来得到新的车牌号;比如子线程得到结果后调用该方法将结果保存到数据库。
      

  2.   

    1. 对每条数据的处理 起一个线程MainThread, 其中 有个 lock  (Object lock=new Object();)  
         public void run(){
              //...对每一个车型号new 一个新线程去生成url去处理  (新线程 待 后面说明)
              //每个线程都要在存起来,如加入ArrayList. 
              sychronized(lock) {
                     lock.wait();    
              }
              //有一个线程处理成功后(就是类型匹配对的那个),调用 lock.notify() 
             
         }
         public void getLock();
    2.执行线程
        public void run(){
            a.根据车牌号,类型,生成url, 请求车辆违章公布网站。
            if(匹配成功,得到正确结果) {
                 保存数据库
                 MainThread.getLock().notify();
             }   
        }其它可能的异常,楼主再分析考虑下。