`
君淋天下
  • 浏览: 31789 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

投行面试常问的15道多线程、并发编程问题

阅读更多

这是一篇翻译文章,原文来自http://javarevisited.blogspot.com/2011/07/java-multi-threading-interview.html

 

1 有线程t1、t2、t3,如何确保线程t2在线程t1运行完成后运行,线程t3在线程t2运行完成后运行

 

2 显示的锁比同步代码块有哪些优势,如何实现一个高性能的读多写少缓存服务器

 

3 sleep()方法和wait()方法有什么区别

   http://javarevisited.blogspot.sg/2011/12/difference-between-wait-sleep-yield.html

 

4 用java实现一个阻塞队列

 

5 用java解决生产者消费者问题

   http://javarevisited.blogspot.sg/2012/02/producer-consumer-design-pattern-with.html

   

6 写一个可能导致死锁的程序,并修复死锁问题 

  http://javarevisited.blogspot.com/2010/10/what-is-deadlock-in-java-how-to-fix-it.html

  

7  什么是原子操作  什么是java的原子操作

  http://javarevisited.blogspot.com/2011/04/synchronization-in-java-synchronized.html

 

8 volatile关键字如何使用,与java的同步方法有什么区别

  http://javarevisited.blogspot.com/2011/06/volatile-keyword-java-example-tutorial.html

 

9 什么是条件竞争,如何发现条件竞争 并解决 

  http://javarevisited.blogspot.sg/2012/02/what-is-race-condition-in.html

 

10 How will you take thread dump in Java? How will you analyze Thread dump?

 

11 为什么调用线程的start()方法可以执行线程并运行run()方法,为什么不能直接调用run()方法

  http://javarevisited.blogspot.sg/2012/03/difference-between-start-and-run-method.html

 

12 如何唤醒阻塞线程

  http://javarevisited.blogspot.sg/2012/02/what-is-blocking-methods-in-java-and.html

 

13  CyclicBarriar和CountdownLatch的不同之处

 

14 什么是不可变对象,对写并发程序有什么帮助

 

15 你面对过哪些常见的并发问题,如何解决

  Memory-interference, race conditions, deadlock, live lock and starvation

 

 

补充的10个问题

1 在java中绿色线程和本地线程区别

 

2 线程和进程区别

 

3 什么是多线程中的上下文切换

 

4 死锁和活锁(livelock)的区别 死锁和饥饿(starvation)的区别

 

5 java里使用线程调度算法

 

6 什么是java的线程调度

 

7 线程中如何处理异常

 

8 什么是线程组 为什么在java中不推荐使用

 

9 为什么执行器框架比自己管理线程更好

 

10 如何在Windows和Linux上查找哪个线程使用的CPU时间最长

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics