1.什么是线程,什么是进程?
1) 进程是系统正在运行的程序
2)线程是进程中的单个顺序控制流,是一条执行路径
2.实现多线程有几种方式?哪种比较好,好在哪里?
1)定义一个类继承类,在类中重写run()方法,创建类对象,启动线程;
2)定义一个类实现Runnable接品,在类中重写run()方法,创建类对象,把类对象作为构造方法的参数创建Thread类对象。
相比继承Thread类,实现Runnable接口比较好:①避免了Java单继承的局限性②适合多个相同程序的代码去处理同一个资源的情况,把线程 和程序的代码、数据有效分离,较好的体现了面向对象的设计思想
3.为什么会出现线程安全问题,该如何解决线程安全问题?
1)线程执行的随机性
2)让线程没有安全问题的条件
4.解决线程安全问题的原理?
把多条语句操作共享数据用代码锁起来,让任意时刻只能有一个线程执行。
5.sleep和wait方法的区别?
Sleep()方法是让线程释放CPU;wait()方法是释放CPU和锁对象。
|