14 Java 多线程中常见面试题

1,多线程有几种实现方案,分别是几种?
继承Thread 类
实现Runnable 接口
通过线程池,实现Callable 接口

2,同步有几种方式,分别是什么,并分别说出其同步锁对象?
同步代码块 ==> 同步锁为: 任意对象
同步方法 ==> 同步锁对象为: this
静态同步方法==> 同步锁对象为: 本类名.class
3,启动一个线程时,run()还是start,说说区别?
star():用来启动线程,并调用线程中的run方法
run(): 执行该线程对象要执行的任务
4,sleep()和wait()方法的区别?
sleep() 不释放锁对象,释放cpu使用权,再休眠的时间内不要唤醒
wait(): 释放锁对象,释放cpu使用权,在等待时间内,能唤醒

5,为什么wait(),notify(),notifyAll() 等方法都定义再Object类中
因为这些方法在使用的时候要注明所属的锁,而锁又是任意对象,所以这些方法是定义在Object 类中的

你可能感兴趣的:(14 Java 多线程中常见面试题)