java并发编程实战-章一

来源:互联网 发布:社交软件开发 编辑:程序博客网 时间:2024/06/08 07:36

1.1 并发简史

早期的计算机不包含操作系统,它们从头到尾只执行一个程序,并且这个程序能访问计算机中的所有资源。在这种裸机环境中,不仅很难编写和运行程序,一次只能运行一个程序,计算机的资源得不到充分的利用。之所以计算机要加入操作系统来实现多个程序的同时运行,主要基于以下原因:资源利用率、公平性、便利性这些也促使了线程的出现。线程允许在同一个进程中同时存在多个程序控制流。线程会共享进程范围内的资源,例如内存句柄和文件句柄,但每个线程都有各自的程序计数器、栈以及局部变量等。线程也被称为轻量级的进程。大多数现代的操作系统中,都是以线程为基本的调度单位,而不是进程。如果没有明确的协同机制,那么线程将彼此独立执行。由于同一个进程中的所有线程将共享进程的的内存地址,因此这些线程都能访问相同的变量并在同一个堆上分配对象,这就需要实现一种比在进程间共享数据粒度更细的数据共享机制。如果没有明确的同步机制来协同对共享数据的访问,当一个线程在使用某个变量时,另一个线程有可能同时访问这个变量,这将造成不可预测的结果。

1.2 线程的优势

线程可以有效的降低开发和维护成本,同时提升复杂应用程序的性能。线程能够将大部分的异步工作流转换成串行工作流。因此能更好的模拟人类的工作方式和交互方式。此外,线程还可以降低代码的复杂度,使代码更容易编写、阅读和维护。 1.2.1 发挥多处理器的强大能力 1.2.2 建模的简单性 1.2.3 异步事件的简化处理 1.2.4 响应更灵敏的用户桌面

1.3 线程带来的风险

1.3.1 安全性问题1.3.2 活跃性问题1.3.3 性能问题

1.4 线程无处不在

每个java应用程序都会使用线程。
原创粉丝点击