面试题---多线程

 

什么是多线程?

在一个应用程序中,同时,有多个不同的执行路径。

说一下多线程的好处

提高程序效率。

线程和进程有什么区别?

线程是进程的一条执行路径,而进程是线程的集合。

什么是线程同步、异步?

线程同步表示,当前线程执行完后下一个线程接着执行。

线程异步表示,  在一个应用程序中,同时,有多个不同的执行路径。例如 javaweb ajax android handler

线程之间如何同步

线程之间同步使用 synchronized、wait 与 notify

什么是线程不安全?如何解决?(重点)

就是在多个线程共享同一个数据会受到其他线程的干扰。

如何解决:使用线程同步技术, 用上锁(synchronized)。 让一个线程执行完了,在让另一个线程执行。

如何创建一个线程?有几种方法?

继承thread类, 重写run方法、实现Runnalbe接口,重写run方法 , 启动一个线程用start();

是使用Runnalbe接口好?还是继承Thread类好?

 是实现Runnalbe接口好,因为实现的接口还可以继续继承。如果继承了Thread类不能在继承。

sleep()和 wait()有什么区别?

a、sleep是让当前线程指定休眠时间,然后继续工作  不释放锁

b、让当前线程wait则是等待,直到有线程通知notify()唤醒他才会重新工作。释放锁

 

原文地址:https://www.cnblogs.com/3020815dzq/p/10104561.html