小弟写了一个cgi的程序,作为中间服务处理用户的请求,并根据请求向另一台服务器发送命令并接收结果,最后再把结果最终返回给用户,单个用户使用没有问题,可是当多用户同时访问时,如果不用排队的方式,是不是需要使用多线程啊?我对此一窍不通,还望大哥们指点一下。
最好能有个例子,另外还有个问题,如果说线程调用的函数是要参数的,那么在创建线程时是不是要把参数传给它?

解决方案 »

  1.   

    没有那么复杂
    看你用什么做cgi了
      

  2.   

    用Udp就可以啊,没那么复杂啊
      

  3.   

    主线程监视服务端口,一旦有客户connect,就马上创建一个工作线程,传递工作参数给它。工作参数可以是记录或者是对象指针。
      

  4.   

    delphi建internet server application时可以选各种方式,和开发3层数据库差不多,delphi能帮你处理多用户问题,不用自己写threat。也可以写,但很麻烦。
      

  5.   

    大部分的CGI都是以多进程方式运行的,如果是写成EXE方式的CGI,
    那只能是多进程方式运行。
    所以你不用担心多用户问题。ISAPI,ASP,JSP是多线程方式的,也不用你去创建线程。                     -------halfdream—-——======哈欠=====
      

  6.   

    线程编写时有一个执行函数(execute()),你就把你的业务逻辑代码填入其中再利用一个主线程启动多线程即可。用不用UDP不影响用不用多线程技术,而且UDP还得加反馈机制,挺麻烦的。我的建议是根据你的客户端的最大数目来确定是否采用多线程,同时请求的客户端在30~40之间可以考虑多线程,超过这一数量才用多线程+UDP