如何在每个用户登陆后形成一个用户线程为该用户服务

来源:百度知道 编辑:UC知道 时间:2024/06/01 12:34:15
BS系统中,如何在每个用户登陆后形成一个用户线程为该用户服务。比如后台要进行一些耗时的计算。又不影响用户在前台的操作。任务执行完成后放入一个队列中。方便用户读取
比如要在这个线程中执行一些操纵,分别在1分钟,5分钟,10分钟反馈给该登陆用户,该怎么实现啊?难道不适合用BS?

提供一个思路,线程不可能无限制的随用户数目增多,用固定大小的线程池以及并发包里面的一些工具
class Sample
{
private static final Queue queue=new ConcurrentLinkedQueue();
private static final Executor exec=
Executors.newFixedThreadPool(100);
public static void main(String[] args) throws IOException
{
ServerSocket socket=new ServerSocket(80);
while(true)
{
final Socket conn=socket.accept();
Runnable task=new Runnable()
{
public void run()
{
//queue.add(handleSomeRequest());
}
};
exec.execute(task);
}
}
}

在BS中,每一个request进来的时候,服务器都会开启一个线程来应答.
如果你要执行一些长时间的操作的话,可以用ajax技术,但这种功能用CS做出来功能会比较强大,如果用BS的话,客户端的浏览器不容易控制.人家随手一关,你什么办法也没有.

就是现在流行的AJAX嘛