小结
1.继承Thread类
子类继承Thread类具备多线程能力
启动线程:子类对象.start()
不建议使用,因为继承是单继承
2.实现Runnable接口
实现接口Runnable具有多线程能力
启动线程:Thread对象.start(目标对象)
推荐使用,因为实现是多实现,方便同一个对象被多个线程使用
第三种方法
实现Callable接口
1.实现Callable接口,需要返回值类型
2.重写call方法,需要抛出异常
3.创建目标对象
4.创建执行服务:ExecutorService ser = Executors.newFixedThreadPool(1) //此处线程数量
5.提交执行:Future<Boolean> result1 = ser.submit(t1)
6.获取结果:boolean r1 = result1.get()
7.关闭服务:ser.shutdownNow()
好处:可以定义返回值,可以抛出异常
静态代理模式总结
真实对象和代理对象都要实现同一个接口,代理对象要代理真实角色
好处:代理对象可以做很多真实对象做不了的事情,真实对象专注做自己的事情
Lamda表达式
先理解函数式接口,任何接口,只包含唯一一个抽象方法,就是一个函数式接口
标签:ser,04,对象,代理,接口,线程,多线程 From: https://www.cnblogs.com/fy2014/p/16714219.html