标签:nbsp 有关 无法 流行 解决方案 asp 上下文 reads practice
例如,用于DMA交易的高容量和低延迟电子交易系统通常是并发的。大多数情况下,他们专注于微秒延迟,这就是为什么拥有如何有效地最小化延迟和提高吞吐量知识是如此重要。
这些是我最喜欢的关于Java的线程面试问题。我没有提供这些线程访谈问题的答案,但我会尽可能给你一个提示。我会更新帖子就详细的答案,就像我最近在Java中发布的10个Singleton面试问题一样。
无论如何,这里是一些常见的Java多线程和并发问题列表,这些问题曾是Java开发人员面试投资银行时遇到的问题,例如: 巴克莱,摩根士丹利,花旗银行等
假设你有三个线程T1,T2,T3。你如何能保证线程T2在线程T1后运行,T3在T2后运行
这个线程面试问题大多是在第一轮或电话筛选轮次中会被问到的,这个多线程问题的目的是检查候选人对“join”方法概念是否熟悉。这个多线程问题的答案很简单 - 可以通过使用Thread类的join方法来实现。
新的Lock接口较于Java中的同步块(synchronized block)有什么优势?您需要实现一个允许多读取的高性能缓存,但是如何实现单独写以保持完整性?
lock接口在多线程和并发编程的主要优势是它提供了两个独立的读写锁,使你能够编写高性能数据结构,如ConcurrentHashMap和条件阻塞(conditional blocking)。
这个Java线程面试问题越来越受欢迎,越来越多的后续提问问题基于面试者的回答。
我强烈建议在任何Java多线程面试之前阅读锁,因为,现在,它大量用于为客户端上的电子交易系统构建缓存并交换连接空间。
Java多线程中sleep和wait方法的区别
让我们看一下Java中另一个经常被问到的线程面试问题。 这个问题经常会出现在电话面试.这两者的主要区别在于wait可以释放锁或监视器,而sleep在等待时不会释放任何锁或监视器。wait用于线程间通信,因为sleep用于在执行时引入暂停。有关详细信息,请参阅我的wait vs sleep in Java这篇帖子。
如何在Java中实现阻塞队列?
这是一个相对困难的Java多线程面试问题,有很多用意。它可以确定候选人在实际工作中是否使用过线程编写Java代码。它可以看到候选人是否充分理解并发场景,你可以根据他的代码提出很多后续问题。如果他使用wait()和notify()方法来实现阻塞队列,一旦候选者成功写出它,你可以让他再次使用新的Java 5并发类等来编写它。
在Java中如何解决生产者消费者问题? (solution)
与上面的线程问题类似,这个问题本质上更经典,但有时候面试官会进一步问问题,比如“你如何解决Java中的生产者消费者问题?”它可以通过多种方式解决。我已经分享了一种使用Java中的BlockingQueue来解决生产者 - 消费者问题的方法,所以要准备好接受一些惊喜。有时候,他们甚至会要求你实现一个解决哲学家进餐问题的解决方案。
编写一个会导致死锁的程序。你将如何解决Java中的死锁问题?
这是我最感兴趣的java面试问题,因为,尽管在编写多线程并发程序时死锁很常见,但许多候选人都无法编写无死锁代码,而且他们很挣扎。
只要询问他们是否有N个资源和N个线程来完成操作;那么,你需要所有的资源。
用N来替换最简单的情况和更高的数字这两种情况,以使问题更加令人生畏。有关死锁的更多信息,请参见How to avoid deadlock in Java 。
什么是原子操作?什么是Java中的原子操作?
这是一个简单的Java线程访谈问题。另一个后续问题是:你需要同步原子操作吗?你可以阅读更多 Java synchronization.
什么是Java中的volatile关键字?你如何使用它?它与Java中的synchronized方法有什么不同?
在对Java 5和Java内存模型进行更改之后,基于Java中的volatile关键字的线程问题变得越来越流行。好好准备一下volatile变量如何确保并发环境中的可见性,排序和一致性。
你将如何在Java中进行线程转储?你将如何分析线程转储?
在UNIX中,您可以使用kill -3,然后线程转储将在Windows上打印日志,您可以使用“CTRL + Break”。虽然这是一个相当简单的线程访谈问题,如果他们问你如何分析它会变得棘手。线程转储也可用于分析死锁情况。
java中CyclicBarriar 和CountdownLatch区别(答案)
新的Java线程面试问题主要是检查您对JDK 5并发包的熟悉程度。他们的一个区别是,一旦barrier被破坏,您可以重复使用CyclicBarrier,但不能重复使用CountDownLatch。如果您想了解更多信息,请查看Udemy的课程-Multithreading and Parallel Computing in Java。
您在多线程环境中遇到了哪些常见问题?你是怎么解决的?
内存干扰,竞态条件,死锁,活锁和饥饿是多线程和并发编程带来的一些问题的一个例子。这些问题是无止境的;如果你弄错了,他们将难以检测和调试。
这主要是关于Java的基于经验的面试问题。您可以看到Heinz Kabutz撰写的Java Concurrency in Practice Course,了解实际高性能多线程应用程序中遇到的一些实际问题。
这些是我最喜欢的Java线程面试问题和投资银行的常见问题。这个列表并不完整,所以请在下面评论一下你在面试中遇到的一些有趣的Java线程问题。本文收集并分享了关于多线程方面的精彩面试问题,这不仅有助于面试,而且为学习新的线程概念打开了大门。
其中一位重读Java的读者Hemant贡献了更多的java线程面试问题。以下是其他问题:
标签:nbsp 有关 无法 流行 解决方案 asp 上下文 reads practice
原文地址:https://www.cnblogs.com/lonske/p/12170723.html