多核程序设计技术

来源:互联网 发布:ae mac中文破解版下载 编辑:程序博客网 时间:2024/05/24 02:01
并发:指多个线程在某段时间内能够同时被执行。并发可以在串行处理器上通过交错执行的方法来实现。
并行:指多个线程在任何时间点都同时执行。
线程:一些相关指令的离散序列。

层次: 用户级/内核级/硬件线程。

一个进程的所有线程共享同一个地址空间和特定资源,但是每个线程的允许是向后独立的。
因此,每个线程有一个栈空间,由操作系统管理。
各种操作系统默认的栈大小是不一样的。

问题分解方式:
  任务分解:每个线程做不同的任务
  数据分解:几个线程共同完成一个任务,然后一起进入下一个
  数据流分解:一个线程先启动,另一个线程延迟启动,并在另一个线程基础上开始,之后线程一起运行。

多线程: 同步,通行,负载平衡,可扩展性

同步:互斥(mutual exclusion)和条件同步(condition synchronization)


同步原语:
信号量:s.sem,P(s),V(s),s.wait()
锁:互斥量,递归锁,读写锁,旋转锁
条件变量:wait(L),signal(L),broadcast(L)

消息:在概念上多与进程而非线程相关。
进程内传递(intra-process):两个线程处于同一进程
进程间传递(inter-process):两个线程处于不同进程
进程对进程(process-process):两个进程不依赖于线程而自行通信

0 0
原创粉丝点击