两种方式:继承Thread或者实现Runable接口
定义一个类:pThrad p = new pThread(143);
Thread:调用方法:p.start();
Runable调用方法:new Thread(p).start();
创建线程方式一:1.实现Runable,重写run方法(run方法为线程入口点,进来了为线程体)
2.创建子类对象,调用start(方法)(不保证立即运行,由CPU调度)
创建线程方式二:1.继承Thread类,重写run方法(run方法为线程入口点,进来了为线程体)
2.创建实现类对象,+Thread对象+start(方法)(start不保证立即运行,由CPU调度)---建议使用,避免单继承
创建线程方式三:1. 创建目标对象: CDownloader cd =new CDownloader("图片地址","baidu.png");
2. 创建执行服务: ExecutorService ser=Executors.newFixedThreadPool(1);
3. 提交执行: Future<Boolean> result1 =ser.submit(cd1) ;
4. 获取结果: boolean r1 =result1.get();
5. 关闭服务: ser.shutdownNow();
静态代理:记录日志或者监控