高并发编程
(一)高并发编程基础知识 这里涉及到一些基础的概念,我重新捧起了一下《实战 Java 高并发程序设计》这一本书,感觉到心潮澎湃,这或许就是笔者叙述功底扎实的魅力吧,喜欢。对于并发的基础可以参照一下我之前写过的一篇博文: Java学习笔记(4)——并发基础 1)多线程和单线程的区别和联系? 答: 在单核 CPU 中,将 CPU 分为很小的时间片,在每一时刻只能有一个线程在执行,是一种微观上轮流占用 CPU 的机制。 多线程会存在线程上下文切换,会导致程序执行速度变慢,即采用一个拥有两个线程的进程执行所需要的时间比一个线程的进程执行两次所需要的时间要多一些。 结论:即采用多线程不会提高程序的执行速度,反而会降低速度,但是对于用户来说,可以减少用户的响应时间。 面试官:那使用多线程有什么优势? 解析:尽管面临很多挑战,多线程有一些优点仍然使得它一直被使用,而这些优点我们应该了解。 答: (1)资源利用率更好 想象一下,一个应用程序需要从本地文件系统中读取和处理文件的情景。比方说,从磁盘读取一个文件需要5秒,处理一个文件需要2秒。处理两个文件则需要: 1| 5秒读取文件A 2| 2秒处理文件A 3| 5秒读取文件B 4| 2秒处理文件B 5| --------------------- 6| 总共需要14秒 从磁盘中读取文件的时候,大部分的CPU时间用于等待磁盘去读取数据。在这段时间里