socketlist.java

来自「JAVA实现的网络服务器文件同步」· Java 代码 · 共 47 行

JAVA
47
字号
package com.msd;

import java.util.List;
import java.util.LinkedList;
import java.net.Socket;

public class SocketList {

   private List socketPool = null;
   private static SocketList instance = null;

   private SocketList() {
      socketPool = new LinkedList();
   }

   public synchronized static void create() {
      if(instance == null) 
		 instance = new SocketList();
   }

   public static SocketList getInstance() {
      if(instance == null)
		 throw new NullPointerException("SocketList is null");
	  return instance;
   }

   public void addList(Socket socket) {
      synchronized(socketPool) {
         socketPool.add(socketPool.size(),socket);
         socketPool.notifyAll();
      }
   }

   public Socket getSocket() {
	  Socket socket = null;
      synchronized(socketPool) {
         while(socketPool.isEmpty()) {
            try{
               socketPool.wait();
            } catch(InterruptedException e) {   }
         }
         socket = (Socket)socketPool.remove(0);
      }
	  return socket;
   }

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?