1、什么是进程
比如:QQ、QQ游戏、eclipse都是进程,可以通过任务管理器查看进程
2、进程和线程区别
线程是进程的一部分,一个进程可以包含多个线程,一个线程只能属于一个进程
进程是所有线程的集合,一个线程是进程中的一条执行路径
3、多线程的好处
多线程的好处就是提高程序的效率
4、多线程的应用场景
迅雷下载视频、QQ同时和多人聊天、批量发送短信,批量上传资源
5、使用继承Thread类还是使用实现Runnable接口好?
使用实现Runnable接口好,原因是接口可以实现多个,类只能继承一个,实现了Runnable接口还可以继承其它的类,继承了Thread类就不能再继承其它的类,一般情况下使用线程池方便管理,避免浪费资源。
6、启动线程是使用start方法还是run方法?
run方法相当于调用重写后的run方法,而不是去开启一个线程
7、多线程创建方式
继承Thread、实现Runnable接口、匿名内部类
8、什么是java内存模型
就是多个线程访问同一变量的时候保证一致性
9、使用wait和sleep区别
wait:调用wait方法,当前线程释放锁,并且必须要调用notify才能重新变为阻塞
sleep:调用sleep不会释放当前锁,当前线程会等待sleep时间到达,继续执行
10、Lock与synchronized的区别
Lock锁是JDK1.5之后推出的并发包里面的关键字,Lock锁可以人为的释放锁(相当于汽车中的手动挡)
synchronized当线程执行完毕或者抛出异常的话,锁自动释放(相当于汽车中的自动挡)