..


赞助商链接

并行编程的C + +

由Stefano Cancedda写文章
第1页,6

顺序编程提供的指令总是按顺序执行的保证,没有变化。 由此产生的行为是确定的:插入相同的输入,输出,得到相同的结果。
对于每一个程序运行的操作系统创建一个进程,使受保护的内存空间。 这提供了可能性,即独立的进程同时操作没有错误。

不同的(更先进)是并行编程。 前包围是要引进和它是如何工作,在我看来,特定类型的对象称为一个内核线程。

作为对象的内核线程的管理是由操作系统,并有两个基本特点:

  • 每个线程都有一个私有数据结构,它存储自己的堆栈,异常信息,接下来要执行的指令;
  • 与常见的全过程,每个线程共享内存区。
在使用线程在执行方面有几个优点。 特别是,我们充分利用多核心CPU的性能,这是目前在个人电脑市场的主导技术。 这是不可想象的,一个现代应用一定的复杂性在一个连续的方式设计的,因此可以充分利用时间优势,只有核心的机器提供了一个。

另外一个优势,它可以作为两个不同的进程运行相同的代码,用不同的参数可能看到,不到两个线程,可以直接利用共享内存效率 在一个系统中不支持线程,如果你想运行几次相同的程序,你必须创造更多的基础上,同一个程序的工作。 这种技术,但资源浪费和较慢。

第三,线程的优势,如果他们被称为I / O阻滞剂:不是由停止了该算法的执行用户触发的事件等待,你可以启动一个新线程,防止不必要的停机时间整体性能的恶化。

相对于并行编程需要同步结构,这是从根本上避免对共享内存的产量会导致错误的随机访问的支持。 也暴露了一系列的错误 ,以程序员往往不确定性,因为该方案的不可预知的行为滋养。

除此之外,同步建有成本,无论是在时间上机需要执行一个特定的性能由这些结构产生,以确保在开展公平竞争的期望造成的损失他们的代码。

在允许竞争管理的主要对象是低于预期,并详细介绍了以下段落:

  • 挥发性成分
  • 互锁功能
  • 交通灯
  • 临界区
  • 活动
  • 定时器
  • 互斥
这些元素适合以自然的方式来解决一个简单问题的具体类。 对于更复杂的问题简单地结合在一起,这些对象得到正确的结果和问题,需要对最早,是上述定义的问题之一,通过使用令人满意的解决是一个复杂的非常关键的。 对同步对象的组合可以是复杂的,在最好的,因为你不能在一个足够高的最坏情况下的性能,因为你不能很容易地找到解决方案,保证了结果的正确性。 至少不是最坏的情况:有一个致命的错误,并没有立即识别。 这个时刻是非常频繁,一方面是因为对这些问题,我们将讨论的敏感性,是事实, 调试总是在并发环境问题,流动实际上是确定性的执行,每 ​​个程序的执行,该命令处理器执行的操作始终是不同的。

在同一类...
电子学习
Flash MX和动作(课程) Flash MX和动作(课程)
成为从29€网站开发商。
前页(电子书) 前页(电子书)
不知道创建HTML网页。 只需25€。
HTML(课程) HTML(课程)
为从29€Web标记语言。
赞助商链接