在一个程序中,独立运行的程序片断叫作“线程”(Thread),利用它编程的概念就叫作多线程处理,也叫并发。
编程中的相当大的部分可以通过顺序编程来解决。然而,对于某些问题,如果能够并行地执行程序中的多个部分,则会变得非常方便甚至非常必要,即使大多数并发程序是不安全和不可靠的。
对许多像我一样的初学者来说,当我们第一次接触并发的概念时,我们会第一时间想到并发对执行速度的极大提升,然而,并发还有一种很重要的功能,那就是为设计某些类型的程序提供跟易用的模型。用并发解决的问题大致可以分为“速度”和“设计可管理性”两种
a)更快的速度
并发通常是提高运行在单处理器上程序的性能。这听起来有点违背直觉。仔细 思 考一下,在单处理器上运行的并发程序开销确实应该比该程序的所有部分都顺出执行的开销大,因为其中增加了任务之间切换的代价。因此,表面上看,顺序运行要比并发运行要节省切换的代价的。
然而,使这个问题变得不同的是阻塞。如果程序中某个任务因为该程序控制之外的某些条件(通常是I/O)而导致不能继续执行,那么说整个任务或线程阻塞。如果没用并发,整个程序会停止下来,直到外部条件发生合适的变化。但是如果用到并发,当一个线程阻塞时,程序的其他线程还会继续执行,整个程序保持执行。事实上,从性能上来讲,如果线程不会阻塞,那么单处理器机器上的并发没有任何意义。
b) 改进代码的设计
并发提供了一种重要的组织结构上的好处:对某些问题程序,你的程序设计可以大大的简化。例如仿真,没有并发的支持是很难解决的。
与面向对象的思想相呼应,仿真当中设计到许多交互式的元素,每一个元素都有其“自己的想法”,为此,系统必须为其分配独立的计算资源。因此,从编程的角度来看,模拟每个仿真元素都有其自己的处理器并且都有独立的任务。
分享到:
相关推荐
Java并发基础
Java并发基础
Java并发基础共6页.pdf.zip
Java并发基础.docx
并发基础RunnableThreadExecutor专题.pdf
多线程和并发基础.doc
java并发基础的大纲图,包含并发三大根源问题,各种并发问题,java内存模型如何解决,线程生命周期等
计算机后端-Java-Java高并发从入门到面试教程-并发基础.zip
用于ANSI-CC++的通用事件驱动并发基础结构,也称为C语言的异步信号槽和源代码级延续机制。_C++_C_下载.zip
想对并发有一定了解的人群
该内容是在暮课网学习的课程比较,讲解进程、线程、多线程和高并发等基础知识。上传网上以供自己以后复习。
目标和内容: 了解什么是优化 掌握优化查询的方法 掌握优化数据库结构的方法 掌握优化MySQL服务器的方法
Concurrent Series:books:深入浅出并发编程实践:并发基础、并发控制、并发模型、并发 IO · · Introduction | 前言随着处理器技术的发展,单核时代以提升处理器频率来提高运行效率的方式遇到了瓶颈,目前各种主流...
1.继承Thread类,启动线程的唯一方法就是通过 Thread 类的 start()实例方法, 2.实现 Runnable 接口,重写run()函数,作为参数
第2章并发基础. 第3章项目准备5 第4章线程安全性 第5章安全发布对象 第6章线程安全策略 第7章J.U.C之AQS 第8章J.U.C组件拓展 第9章线程调度-线程池 第10章多线程并发拓展 第11章高并发之扩容思路 第12章高并发之缓存...
目标 了解什么是优化 掌握优化查询的方法 掌握优化数据库结构的方法 掌握优化 MySQL 服务器的方法 2. 什么是优化? 合理安排资源、调整系统参数使 MySQL 运行更快、更节省资源。 优化是多方面的,包括查询优化、...
NULL 博文链接:https://zhaodengfeng1989.iteye.com/blog/2419692