当前位置:编程学习 > JAVA >>

多个socket接收数据,5分钟左右cpu飙至100%.

小弟遇到个问题,急需解决,望大家帮帮忙看看.写了一个程序,在启动一个线程后,在里面根据socket请求,又启动了新的线程,有几个新的socket请求,就启动几个线程进行数据接收和处理,这样做可以么?为什么跑5分钟左右cpu就100%了..急需解决.谢谢


    /**
     * 仪器数据处理线程 每一个socket请求过来认为是一个仪器,一个仪器开一条线程
     * 首先启动连接仪器监听线程
     * 当有socket请求时,启动仪器数据处理线程,除非两边手动断开,否则不会中断
     */
    @Override
    public void run() {
        time.schedule(new LabDeviceListener(loader), 3000, 5000);
        while (!this.isInterrupted()) {
            try {
                Socket socket = serverSocket.accept();
                if (null != socket) {
                    CreateObject co = new CreateObject(socket, loader);
                    co.setDaemon(true);
                    co.start();
                }
            } catch (IOException ex) {
            }
        }
    }
--------------------编程问答-------------------- 你的线程会结束么?还是就这样持续不断的网上增长?直到后来CPU全部浪费在切换线程上? --------------------编程问答--------------------      是的,你编写的线程一直在运行,可以通过关闭或退出的时候释放资源。 --------------------编程问答-------------------- 另外,请用线程池.
补充:Java ,  Java相关
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,