多线程怎么保证数据安全_【技术干货】多线程面试真题实战训练(推荐收藏)...

海牛学院的 | 第 611 

本文预计阅读 |   分钟 db1d2c75bbe5a626f48248922d04c6ed.png

640941258d13b3ac6debe9b3f0a3699e.gif

多线程面试真题

1.请问负载平衡的意义什么?

在计算中,负载平衡可以改善跨计算机、计算机集群、网络链接、中央处理单元或磁盘驱动器等多种计算资源的工作负载分布。负载平衡旨在优化资源使用,最大化吞吐量,最小化响应时间并避免任何单一资源的过载。使用多个组件进行负载平衡而不是单个组件可能会通过冗余来提高可靠性和可用性。负载平衡通常涉及专用软件或硬件,例如多层交换机或域名系统服务器进程。

2.请说出同步线程及线程调度相关的方法。

1) wait():使一个线程处于等待(阻塞)状态,并且释放所持有对象的锁; 2) sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要处理InterruptedException异常; 3) notify():唤醒一个处于等待状态的线程,当然在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且与优先级无关; 4) notityAll():唤醒所有处于等待状态的线程,该方法并不是将对象的锁给所有线程,而是让它们竞争,只有获得锁的线程才能进入就绪状态。 注意:Java5通过Lock接口提供了显示的锁机制,Lock接口中定义了加锁(lock())方法)和解锁(unLock()方法),增强了多线程编程的灵活性及对线程的协调。

3.关于 epoll 和 select 的区别,哪些说法是正确的?(多选)

A. epoll 和 select 都是 I/O 多路复用的技术,都可以实现同时监听多个I/O事件的状态。 B. epoll 相比 select 效率更高,主要是基于其操作系统支持的 I/O 事件通知机制,而 select 是基于轮询机制。 C. epoll 支持水平触发和边沿触发两种模式。 D. select 能并行支持I/O比较小,且无法修改。 答:A . B . C。

4.启动一个线程是调用run()方法还是start()方法?

启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由 JVM 调度并执行,这并不意味着线程就会立即运行。run()方法是线程启动后要进行回调(callback)的方法。

5.如何确保N个线程可以访问N个资源同时又不导致死锁?

使用多线程的时候,一种非常简单的避免死锁的方式就是:指定获取锁的顺序,并强制线程按照指定的顺序获取锁。因此,如果所有的线程都是以同样的顺序加锁和释放锁,就不会出现死锁了。

6.编写多线程程序的几种实现方式(换个问法:创建多线程的方式)有哪些?

(1)通过继承Thread类。 (2)通过实现Runnable接口(推荐使用,因为Java中是单继承,一个类只有一个父类,若继承了 Thread类,就无法再继承其它类,显然实现Runnable接口更为灵活。 (3)通过实现Callable接口(Java5之后)。

7.线程和进程的区别是什么?

进程: 具有一定独立功能的程序关于某个数据集合上的一次运行活动,是操作系统进行资源分配和调度的一个独立单位。 线程: 是进程的一个实体,是CPU调度和分派的基本单位,是比进程更小的可以独立运行的基本单位。 特点: 1)线程的划分尺度小于进程,这使多线程程序拥有高并发性; 2)进程在运行时各自内存单元相互独立,线程之间内存共享,这使多线程编程可以拥有更好的性能和用户体验。

8.什么是线程池,有哪些常用的线程池?

就是事先创建若干个可执行的线程放入一个池(容器)中,需要的时候从池中获取线程不用自行创建,使用完毕不需要销毁线程而是放回池中,从而减少创建和销毁线程对象的开销。

9.什么是死锁?

两个线程都在等待对方执行完毕才能继续往下执行的时候就发生了死锁。结果就是两个进程都陷入了无限的等待中。

10.怎么保证缓存和数据库数据的一致性?

合理设置缓存的过期时间。 新增、更改、删除数据库操作时同步更新Redis,可以使用事务机制来保证数据的一致性。

4d7b16d1bdcf4675a0edb3e1434dfa55.png

总结 以上就是今天的内容了,如果对你有帮助,希望你能够关注、点赞、转发一键三连支持一下。 需要完整学习线路和配套课堂笔记,请后台回复【学习线路、笔记、思维导图】,更多技术干货请在后台回复【技术论坛】

备注 “ 进群 ” (广告勿扰)

【海牛大数据交流群】

0d53217e26b409d465547b6510f60b82.png b187f6735ff44078b8cb0c413138324b.png a5def73cbc55c8a4cba35b6f5c8b1afc.png 1704015b4e69f151970beb2462460416.png 676a8f248e2d97eb7743366203206376.png 07a19e5c5af2dea877e65447e1d75526.png  要点赞,要在看 ↓↓↓
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值