2025-02-15

java編寫線程連接池代碼如下:

  1. 線程池:  
  2.    import   java.util.LinkedList;  
  3.    
  4.    public    abstract    class    Manager    {  
  5.    
  6.            private    String    mThreadPoolName    =    null;  
  7.    
  8.            private    int    mThreadPoolMaxSize    =    1;  
  9.    
  10.            private    LinkedList    workers    =   new    LinkedList();  
  11.    
  12.            public    Manager()    {  
  13.            }  
  14.    
  15.            public    Manager(String    name,    int    poolMaxSize)    {  
  16.                    mThreadPoolName    =    name;  
  17.                    createWorker(name,    poolMaxSize);  
  18.                    mThreadPoolMaxSize    =    poolMaxSize;  
  19.            }  
  20.    
  21.            private    void    createWorker(int    poolMaxSize)    {  
  22.                            for    (int    i    =    0;    i    <    poolMaxSize;    i )    {  
  23.                                    Worker    worker    =    new    …Worker(this);  
  24.                                    workers.addLast(worker);  
  25.                            }  
  26.            }  
  27.    
  28.            public    synchronized    Worker    getIdleWorker()    {  
  29.                    return    (Worker)workers.removeFirst();  
  30.            }  
  31.    
  32.            public    synchronized    void    notifyFree(Worker    worker)    {  
  33.                    if    (workers.size()    <    mThreadPoolMaxSize)    {  
  34.                            workers.addLast(worker);  
  35.                    }    else    {  
  36.                            worker    =    null;  
  37.                    }  
  38.            }  
  39.    
  40.            public    int    getThreadPoolMaxSize()    {  
  41.                    return    mThreadPoolMaxSize;  
  42.            }  
  43.    
  44.            public    void    setThreadPoolMaxSize(int    threadPoolMaxSize)    {  
  45.                    this.mThreadPoolMaxSize    =    threadPoolMaxSize;  
  46.            }  
  47.    }  
  48.    
  49.    線程抽象類  
  50.    public    abstract    class    Worker    implements    Runnable    {  
  51.    
  52.            private    Manager    mManager    =    null;  
  53.    
  54.            private    Thread    mThread    =    null;  
  55.        
  56.            public    Worker()    {  
  57.            }  
  58.    
  59.            public    Worker(String    threadName,    Manager    manager)    {  
  60.                    mManager    =    manager;  
  61.                    mThread    =    new    Thread(this,    threadName);  
  62.                    init();  
  63.                 &nb

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *