关于线程的那些事?
1.线程的实现方式以及区别?
(1)线程有三种实现方式,继承Thread类,实现Runnable接口,实现Callable接口(基本不用)。
(2)实现Runnable接口解决了单继承的局限性。
(3)实现Runnable接口比继承Thread类更好的实现了资源共享的问题。
(4)Callable接口可以解决线程的返回值问题。
2.多个线程访问同一资源时需要考虑到哪些情况?有可能带来哪些问题?
(1)多个线程访问同一资源时一定要处理好同步,可以使用同步代码块或同步方法。
|-同步代码块:synchronized(锁定对象){代码};
|-同步方法:public synchronized 返回值 方法名称(){代码};
(2)但是过多的使用同步,有可能造成死锁。
3.请解释sleep()和wait()方法的区别?
(1)sleep()是Thread类定义的方法,而wait()是Object类定义的方法;
(2)sleep()可以设置休眠时间,时间一到自动唤醒,而wait()需要等待notify()进行唤醒;
java多线程
最新推荐文章于 2023-01-30 17:27:38 发布