这篇文章主要讲解了“有哪些Java多线程面试题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“有哪些Java多线程面试题”吧!
1:什么是线程?
轻量级的进程
2:线程的三个部分是?
处理机
代码
数据
3:为什么使用多线程
使UI响应更快
利用多处理器系统
简化建模
4:代码示例:Java中实现多线程的两种方式,包括如何定义多线程,如何使用多线程
4.1实现Runnable接口
class Thread1 implements Runnable{ public void run(){ //run里一般写一个while(true)循环 System.out.println(Runnable); } }
4.2继承Thread
class Thread2 extends Thread{ public void run(){ System.out.println(extends); } }
public class Test{ public static void main(String[] a){ Thread1 r = new Thread1(); Thread t1 = new Thread(r); Thread t2 = new Thread(r); t1.start(); t2.start(); Thread t3 = new Thread2(); t3.start(); } }
5:如何实现线程的调度?如何暂停一个线程的运行
调度用wait和notify
sleep()
6:什么是线程的优先级
判断哪个线程先执行的级别
7:简述sleep方法和wait方法的功能和区别
sleep是让线程休眠一段时间
wait是让线程挂起
8:什么是守候线程
隐藏在后台持续运行的线程
9:什么是临界资源
指多个线程共享的资源
10:什么是互斥锁,Java中如何实现
用来保证在任一时刻只能有一个线程来访问临界资源的那个标记
用在对象前面限制一段代码的执行
用在方法声明中,表示整个方法为同步方法。
11:什么是死锁?如何避免?
如果程序中有多个线程竞争多个资源,就可能会产生死锁。当一个线程等待
由另一个线程持有的锁,而后者正在等待已被第一个线程持 有的锁时,就会
发生死锁。
要避免死锁,应该确保在获取多个锁时,在所有的线程中都以相同的顺序获取锁。
尽量少用临界资源
12:简述wait和notify,notifyAll的使用
被锁定的对象可以调用wait()方法,这将导致当前线程被阻塞并放弃该对象
的互斥锁,即解除了wait()方法的当前对象的锁定状态,其 他的线程就有机
会访问该对象。
notify使等待队列上的一个线程离开阻塞状态
notifyAll使等待队列上的所有线程离开阻塞状态
13:什么是url?基本的格式是?
统一资源定位器
Http://www.163.com:port
14:简述IP,Port,TCP的基本功能
IP代表网络位置
Port代表端口号
TCP可保证不同厂家生产的计算机能在共同网络环境下运行,解决异构网通信问题,是目前网络通信的基本协议
15:简述Java网络模型的基本功能
描述服务端和客户端的连接过程
16:简述Java网络编程究竟做些什么?如何做?
1.建立连接
2.准备输出的数据,流式输出
3.流式输入,编程业务需要的格式
4.关闭连接
服务器分配一个端口号。如果客户请求一个连接,服务器使用accept()方法打开socket连接。
客户在host的port端口建立连接。
服务器和客户使用InputStream和OutputStream进行通信。
17:代码示例:基于Socket编程
try { ServerSocket s = new ServerSocket(8888); while (true) { Socket s1 = s.accept(); OutputStream os = s1.getOutputStream(); DataOutputStream dos = new DataOutputStream(os); dos.writeUTF("Hello," +s1.getInetAddress() + "port#" + s1.getPort() + "\nbye!"); dos.close(); s1.close(); } }catch (IOException e) { System.out.println("程序运行出错:" + e); }
18:代码示例:基于UDP编程
19:TCP和UDP区别
TCP能保证传输内容的完整和准确,UDP不能
感谢各位的阅读,以上就是“有哪些Java多线程面试题”的内容了,经过本文的学习后,相信大家对有哪些Java多线程面试题这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。