
288 Chapter 7 • Securing Your Java Code
private static int totalClients = 0;
public static ClientThread getInstance(Socket client) {
System.gc();
if(totalClients <= 100) {
++totalClients;
return new ClientThread(client);
}
return null;
}
private ClientThread(Socket client) {
// Constructor code here
}
public finalize() {
—totalClients;
}
}
As you can see, the constructor method has been made private, so
only this class can call the constructor. A private static integer keeps
track of the number of instances for this class. Of course, every time an
object is destroyed the class must keep track.This is a very effective
means of limiting the number of threads that a ...