解决方案 »

  1.   

    socket是用于网络通信的。
    thread是用于处理多IO操作的(线程归根结底是为了合理利用资源,资源是什么,就是CPU以及内存的利用,对于这些的操作都是围绕IO进行的)。
    它们之间的交互是在于socket在通信的时候,也是io ---> socket.getInputStream socket.getOutputStream
    那么当多个请求(1个请求就是1个socket,你可以这么理解),那么请求就会产生队列,而socket的io是阻塞式的,所谓的阻塞就是我当前这个线程一次只能处理一个请求,那么后面的请求你们都需要等待我当前这个线程处理一个请求结束后再处理,此时就可以去创建多个线程(一般为了线程的循环利用,都是线程池)去处理多个请求。
    如果你用过tomcat等类似的容器,它们一般都会有一个配置参数,就是配置最大请求处理数,其实就是上面说的线程池中的线程个数。
      

  2.   

    多线程对象中有你说的普通java类对象,多线程run方法里调用该普通java对象的方法,最后new多个多线程对象,分别start,这样就是最简单的能实现的多线程了。
      

  3.   

    http://blog.csdn.net/andy_gx/article/details/42804273
    多线程是一种并发处理机制,不是哪个类随便都需要支持多线程的,要看你访问的是否是一个可变状态的变量,具体可以参考我的我的围脖。socket是套接字通信协议,是基于TCP/UDP的,有BIO、NIO、AIO,效率高框架丰富的那就是NIO了,有MINA、
    NETTY。
      

  4.   

    public class Test { public static void main(String[] args) { class MyThread extends Thread { private String name; public MyThread(String name) {
    this.name = name;
    } @Override
    public void run() {
    for (int i = 0; i < 10; i++) {
    System.out.println(this.name + "--->执行");
    try {
    Thread.sleep(100);
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    }
    }
    } Thread a = new MyThread("a");
    Thread b = new MyThread("b");
    // run是方法调用
    // a.run();
    // b.run();
    // start是启动线程。
    a.start();
    b.start();
    }
    }
      

  5.   

    Java的多线程概念上和语法上没什么难的,难的是实际用!!
      

  6.   

    多线程是一种并发处理机制,不是哪个类随便都需要支持多线程的,要看你访问的是否是一个可变状态的变量,具体可以参考我的我的围脖。socket是套接字通信协议,是基于TCP/UDP的,有BIO、NIO、AIO,效率高框架丰富的那就是NIO了,有MINA、
    NETTY。
    这里有代码实例:http://blog.csdn.net/andy_gx/article/details/42804273 ,跟着实例学习java多线程。