⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clientserver.java

📁 a simple java mutlti thread concurrency program src code
💻 JAVA
字号:
import Utilities.*;
import Synchronization.*;

class AdvMessage extends MyObject{

	private String fromWhom = null;
	private String appMethod = null;
	public AdvMessage(String fromWhom,String appMethod){
		super("AdvMessage");
		this.fromWhom = fromWhom;
		this.appMethod = appMethod;
	}
	
	public String toString(){
		String value = "\nfromWhom=" + fromWhom + ";Method="+ appMethod;
		return value;
	}
    public String fromWhom() { return fromWhom; }

}

class ServerThread extends MyObject implements Runnable {

	   private Rendezvous r = null;

	   public ServerThread(Rendezvous r) {
	      super("ServerThread");
	      this.r = r;
	      new Thread(this).start();
	   }

	   public void run() {
	      AdvMessage rrr
	         = (AdvMessage) r.serverGetRequest();
	      System.out.println("age()=" + age()
	         + ", a ServerThread got a request from " + rrr.fromWhom());
	      //rrr.doRequest();
	      System.out.println("age()=" + age()
	         + ", a ServerThread finished the request from " + rrr.fromWhom());
	      r.serverMakeReply(rrr);
	   }
	}

	class MultiThreadedServer extends MyObject implements Runnable {

	   private EstablishRendezvous er = null;
	   private boolean threadedServer = false;

	   public MultiThreadedServer(EstablishRendezvous er,
	         boolean threadedServer) {
	      super("MultiThreadedServer");
	      this.er = er;
	      this.threadedServer = threadedServer;
	      System.out.println(getName() + " is alive");
	      new Thread(this).start();
	   }

	   public void run() {
	      while (true) {
	         Rendezvous r = er.serverToClient();
	         if (threadedServer) {
	            System.out.println("age()=" + age() + ", Server got a request");
	            // spawn a new thread to handle the request asynchronously
	            new ServerThread(r);
	         } else {  // do it here and now before handling any more clients
	            AdvMessage rrr
	               = (AdvMessage) r.serverGetRequest();
	            System.out.println("age()=" + age()
	               + ", Server got a request from " + rrr.fromWhom());
	            //rrr.doRequest();
	            System.out.println("age()=" + age()
	               + ", Server finished the request from " + rrr.fromWhom());
	            r.serverMakeReply(rrr);
	         }
	      }
	   }
	}


public class ClientServer {

}

⌨️ 快捷键说明

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