`
FanfanWing
  • 浏览: 61583 次
  • 性别: Icon_minigender_1
  • 来自: 澳门
社区版块
存档分类
最新评论

java程序实现线程连接池功能

阅读更多
线程池:  
   
  import   java.util.LinkedList;  
   
  public   abstract   class   Manager   {  
   
          private   String   mThreadPoolName   =   null;  
   
          private   int   mThreadPoolMaxSize   =   1;  
   
          private   LinkedList   workers   =   new   LinkedList();  
   
          public   Manager()   {  
          }  
   
          public   Manager(String   name,   int   poolMaxSize)   {  
                  mThreadPoolName   =   name;  
                  createWorker(name,   poolMaxSize);  
                  mThreadPoolMaxSize   =   poolMaxSize;  
          }  
   
          private   void   createWorker(int   poolMaxSize)   {  
                          for   (int   i   =   0;   i   <   poolMaxSize;   i++)   {  
                                  Worker   worker   =   new   ...Worker(this);  
                                  workers.addLast(worker);  
                          }  
          }  
   
          public   synchronized   Worker   getIdleWorker()   {  
                  return   (Worker)workers.removeFirst();  
          }  
   
          public   synchronized   void   notifyFree(Worker   worker)   {  
                  if   (workers.size()   <   mThreadPoolMaxSize)   {  
                          workers.addLast(worker);  
                  }   else   {  
                          worker   =   null;  
                  }  
          }  
   
          public   int   getThreadPoolMaxSize()   {  
                  return   mThreadPoolMaxSize;  
          }  
   
          public   void   setThreadPoolMaxSize(int   threadPoolMaxSize)   {  
                  this.mThreadPoolMaxSize   =   threadPoolMaxSize;  
          }  
   
  }  
   
  线程抽象类  
   
  public   abstract   class   Worker   implements   Runnable   {  
   
          private   Manager   mManager   =   null;  
   
          private   Thread   mThread   =   null;  
       
          public   Worker()   {  
          }  
   
          public   Worker(String   threadName,   Manager   manager)   {  
                  mManager   =   manager;  
                  mThread   =   new   Thread(this,   threadName);  
                  init();  
                  mThread.start();  
          }  
   
          public   abstract   void   init();  
   
          public   void   run()   {  
                  while   (true)   {  
                          waitForStart();  
                          Worker   worker   =   mManager.getIdleWorker();  
                          process();  
                          isRunning   =   false;  
                          mManager.notifyFree(worker);  
                  }  
          }  
   
          public   abstract   void   process();  
   
          public   void   start()   {  
                  isRunning   =   true;  
                  mManager.getIdleWorker();  
                  notifyToStart();  
          }  
   
          public   synchronized   void   waitForStart()   {  
                  try   {  
                          wait();  
                  }   catch   (InterruptedException   ex)   {  
                  }  
          }  
   
          public   synchronized   void   notifyToStart()   {  
                  notify();  
          }  
   
  }   
分享到:
评论
1 楼 darrendu 2010-07-31  
你的程序不完整啊!变量有的都没有声明,顺便说下原理就好了,以及你的东西怎么使用!

相关推荐

    java高性能数据库连接池V2.0

    数据库连接池,是一种相当实用的应用程序。它可以保存、维护及创建用户所需的数据库连接。从而使得用户得到一个连接的时间降低90%以上。大大提升了数据库访问的反应时间。 这个是一个开源的代码。大家可以修改它、...

    java高性能数据库连接池V5.0

    数据库连接池,是一种相当实用的应用程序。它可以保存、维护及创建用户所需的数据库连接。从而使得用户得到一个连接的时间降低90%以上。大大提升了数据库访问的反应时间。 这个是一个开源的代码。大家可以修改它、...

    java面试题

    请写一个java程序实现线程连接池功能? 122 84.13. 编一段代码,实现在控制台输入一组数字后,排序后在控制台输出; 122 84.14. 列出某文件夹下的所有文件; 123 84.15. java调用系统命令实现删除文件的操作; 123 ...

    JAVA面试题最全集

    请写一个java程序实现线程连接池功能? 44.给定一个C语言函数,要求实现在java类中进行调用。 45.如何获得数组的长度? 46.访问修饰符“public/private/protected/缺省的修饰符”的使用 47.用关键字final修饰一...

    强大的Java连接池类 for Java 附带源代码。

    我自行开发的一套Java平台的数据库连接池类,内部使用的是线程控制,其详细原理说明在CSDN进其将有所发布,届时也有源代码结实说明,该压缩文件中包含连接池运行的jar文件和其帮助手册中文版,(未竟严格代码测试) ...

    强大的Java连接池类 for .Net

    我自行开发的一套Java平台的数据库连接池类,内部使用的是线程控制,其详细原理说明在CSDN进其将有所发布,届时也有源代码结实说明,该压缩文件中包含连接池运行的jar文件和其帮助手册中文版,未竟严格代码测试) ...

    自己写的java数据库连接池

    数据库连接池用在网站后台架构中,非常有利于提高用户请求的响应速度。为此,我编写了一个...经过上千个多线程同时访问的数据库连接池程序 。 资源包括一个接口,两个实现。一个测试类。 大家可以使用它,修改它。

    R2高性能数据库连接池v1.5源码

    R2 jdbc连接池,用于java程序中jdbc连接池的配置管理,可应用于非web项目(纯java项目),全参数化配置。 应用时,先用rar打开jar包,拷贝r2.properties文件到class目录,并修改参数。 本包需要用到log4j,请在调用...

    R2数据库连接池高性能连接池v1.3

    R2 jdbc连接池,用于java程序中jdbc连接池的配置管理,可应用于非web项目(纯java项目),全参数化配置。 应用时,先用rar打开jar包,拷贝r2.properties文件到class目录,并修改参数。 本包需要用到log4j,请在...

    强大的Java连接池类 for Java

    我自行开发的一套Java平台的数据库连接池类,内部使用的是线程控制,其详细原理说明在CSDN进其将有所发布,届时也有源代码结实说明,该压缩文件中包含连接池运行的jar文件和其帮助手册中文版,(未竟严格代码测试) ...

    java的ftp多线程下载

    本程序是在原有基础上逐步完善的,第一版:http://download.csdn.net/detail/zpwmhx/4342943 第二版:http://download.csdn.net/detail/zpwmhx/4505209 ...本程序很适合在主机间批量传输文件和目录,参数可控

    R2高性能数据库连接池v1.6源码

    R2 jdbc连接池,用于java程序中jdbc连接池的配置管理,可应用于非web项目(纯java项目),全参数化配置。 应用时,先用rar打开jar包,拷贝r2.properties文件到class目录,并修改参数。 本包需要用到log4j,请在...

    R2高性能数据库连接池v1.3源码

    R2 jdbc连接池,用于java程序中jdbc连接池的配置管理,可应用于非web项目(纯java项目),全参数化配置。 应用时,先用rar打开jar包,拷贝r2.properties文件到class目录,并修改参数。 本包需要用到log4j,请...

    R2高性能数据库连接池v1.7源码

    R2 jdbc连接池,用于java程序中jdbc连接池的配置管理,可应用于非web项目(纯java项目),全参数化配置。 应用时,先用rar打开jar包,拷贝r2.properties文件到class目录,并修改参数。 本包需要用到log4j,请在调用...

    java开源包4

    在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一个完整的虚拟机以及一个 javap 字节码反汇编器。 brap(Java远程调用框架 BRAP) 一个Java远程...

    R2高性能数据库连接池v1.8源码

    R2 jdbc连接池,用于java程序中jdbc连接池的配置管理,可应用于非web项目(纯java项目),全参数化配置。 应用时,先用rar打开jar包,拷贝r2.properties文件到class目录,并修改参数。 本包需要用到log4j,请在调用...

    R2高性能数据库连接池v1.8改进版源码

    R2 jdbc连接池,用于java程序中jdbc连接池的配置管理,可应用于非web项目(纯java项目),全参数化配置。 应用时,先用rar打开jar包,拷贝r2.properties文件到class目录,并修改参数。 本包需要用到log4j,请在调用...

    java开源包3

    在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一个完整的虚拟机以及一个 javap 字节码反汇编器。 brap(Java远程调用框架 BRAP) 一个Java远程...

    JAVA上百实例源码以及开源项目

    百度云盘分享 ... Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。  部分源代码摘录:  ftpClient = new FtpClient(); //实例化FtpClient对象  String serverAddr=jtfServer.getText();...

    JAVA上百实例源码以及开源项目源代码

     Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。  部分源代码摘录:  ftpClient = new FtpClient(); //实例化FtpClient对象  String serverAddr=jtfServer.getText(); //得到服务器地址  ...

Global site tag (gtag.js) - Google Analytics