线程
由于进程是相当重量级的,太多进程很快会让服务器吃不消。
这时,有两种解决方案:
①重用进程,而不是创建新的进程。
②使用轻量级的线程来处理连接,而不是重量级的进程。
线程如果T开头,表示Thread类对象。
线程如果t开头,表示虚拟机中一个单独,独立的执行路径。
线程的替代方法:
如果一个应用同时需要数千个持续很长时间的连接,就要考虑异步I/O而不是线程。
运行线程
①对Thread派生子类,覆盖其run()方法:
public class A extends Thread{
public void run{
}
public static void main(String[] args){
Thread t = new A();
t.start();
}
}
②实现Runnable接口,将该实例对象传递给Thread构造函数(更加面向对象的做法):
public class A implements Runnable{
public void run{
}
public static void main(String[] args){
A a = new A();
Thread t = new Thread(a);
t.start();
}
}