有哪些Java多线程面试题

发布时间:2021-10-29 16:57:20 作者:iii
来源:亿速云 阅读:109

这篇文章主要讲解了“有哪些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多线程面试题这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. java面试题,15个java多线程面试题及答案
  2. JavaScript面试题有哪些

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java

上一篇:Redis怎么弥补传统MySQL架构的不足

下一篇:Mysql数据分组排名实现的示例分析

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》