1. 多线程有几种实现方案,分别是哪几种?
3种:
方式1: 继承Thread类
方式2: 实现Runnbale接口
方式3: 线程池方式,通过submit()方法,调用Callable接口子类对象
2. 同步有几种方式,分别是什么?
3种:
方式1: 同步代码块
锁对象: 任意对象
方式2: 同步方法
锁对象: this
方式3: 同步静态方法
锁对象: 类名.class
3. 启动一个线程是run()还是start()?它们的区别?
启动线程是start()方法.
区别:
run(): 用来指定线程对象要执行的任务
start(): 启动线程,通过JVM底层调用当前线程对象的run()方法
4. sleep()和wait()方法的区别
sleep(): 休眠
要等待时间到达后,自动醒来
释放CPU执行权,但不释放锁对象
wait(): 等待
可以等待时间到达后,自动醒来
或者可以通过notify() 或 notifyAll()唤醒
释放CPU执行权,同时释放锁对象
5. 为什么wait(),notify(),notifyAll()等方法都定义在Object类中
因为锁对象可以是任意对象, 所以定义在Object类中
创建型模式:简单工厂模式,工厂方法模式,抽象工厂模式,建造者模式,原型模式,单例模式。(6个)
结构型模式:外观模式、适配器模式、代理模式、装饰模式、桥接模式、组合模式、享元模式。(7个)
行为型模式:模版方法模式、观察者模式、状态模式、职责链模式、命令模式、访问者模式、策略模式、备忘录模式、迭代器模式、解释器模式。(10个)
|
|