我的应用程序使用 rmi 服务客户端请求来操作数据库上的数据(使用 JDBC)。我希望该骨架为每个客户端的操作请求运行一个线程。我只需要像
public MySkeleton implement MyInterface {
public string method1() {
myThread.start();
}
或者是其他东西?
我的应用程序使用 rmi 服务客户端请求来操作数据库上的数据(使用 JDBC)。我希望该骨架为每个客户端的操作请求运行一个线程。我只需要像
public MySkeleton implement MyInterface {
public string method1() {
myThread.start();
}
或者是其他东西?
您不需要做任何特别的事情,RMI 框架会自动为您分拆新线程。尝试使用最简单的服务器,您会发现每次新客户端连接时,它总是能够直接连接到服务器:
public interface Server extends java.rmi.Remote {
void doIt () throws java.rmi.RemoteException;
}
public class ServerImpl extends java.rmi.server.UnicastRemoteObject implements Server {
public ServerImpl() throws java.rmi.RemoteException {
super();
}
public void doIt () {
System.out.println ("Starting in " + Thread.currentThread().getName());
try { Thread.sleep(10000); } catch(InterruptedException t) {}
System.out.println ("Stopping in " + Thread.currentThread().getName());
}
public static void main (String[] argv) throws Exception {
java.rmi.registry.LocateRegistry.createRegistry(1099);
java.rmi.Naming.rebind ("//localhost/Server", new ServerImpl ());
}
}
public class Client {
public static void main(String[] argv) throws Exception {
((Server) java.rmi.Naming.lookup("Server")).doIt();
}
}
我希望该骨架为每个客户端的操作请求运行一个线程。
RMI 已经这样做了。
我只需要像
不,你没有。正常写方法就好了。RMI 将为您实现多线程。