Java Interview

D. Java Multi-Threading and Conc

2018-10-03  本文已影响0人  mitsuii

1.线程和进程的区别?

2.多线程程序的好处有哪些?

3.线程和后台线程有什么区别?

a

4.如何创建线程?

a

5.线程生命周期里线程状态有哪些?

a

6.能否调用线程类的run方法?

a

7.如何在确定的时候停止执行的线程?

a

8.线程优先级如何理解?

a

9.什么是定时线程和时间分片?

a

10.什么是多线程里的上下文切换?

a

11.如何确定Java程序里main()是最后一个完成的线程?

a

12.线程间交互是如何完成的?

a

13.为什么线程交互的方法wait(),notify()和notifyAll()是在Object类里?

a

14.为什么线程交互的方法wait(),notify()和notifyAll()必须从synchronized方法或block里调用?

a

15.为什么线程的sleep()和yield()方法是静态的?

a

16.Java如何实现线程安全?

a

17.volatile关键词的用途是什么?

a

18.Synchronized方法和Synchronized代码块应该如何优先选?

a

19.如何创建后台线程?

a

20.ThreadLocal是什么?

21.线程组是什么?为何建议不适用它?

22.什么是线程Dump?如何Dump Java程序的线程?

23.什么是死锁?如何分析和避免死锁情况?

24.Timer类是什么?如何执行定时任务?

25.线程池是什么?如何创建线程池?

26.如果不重写Thread类的run()方法会发生什么?

27.什么是原子操作?Java多线程API中原子类有哪些?

28.Java多线程API中Lock接口是什么?它优于synchronization的好处是什么?

29.线程框架是什么?

30.BlockingQueue是什么?如何通过BlockingQueue实现生产-消费模型?

阅读文章producer-consumer problem implementation using BlockingQueue

31.Callable和Future是什么?

阅读文章Callable Future Example

32.FutureTask类是什么?

阅读文章Java FutureTask Example学习如何使用和了解其不同方法。

33.什么是线程集合类?

阅读文章how to avoid ConcurrentModificationException when using iterator

34.Executors类是什么?

a

35.Java8多线程API中有什么改进?

一些多线程API的增强如下:

∆ ConcurrentHashMap的compute(), forEach(), forEachEntry(),forEachKey(), forEachV alue(), merge(), reduce() and search()方法;

∆ CompletableFuture可能明确的完成(设置值和状态);

∆ Executors的newWorkStealingPool()方法来创建work-stealing线程池,根据目标并行级别来使用所有可用的CPU处理器。

上一篇下一篇

猜你喜欢

热点阅读