技术的乐趣在于分享,欢迎多多交流,多多沟通。
全部博文(877)
分类: Windows平台
2015-09-01 14:01:06
/> 阻塞和同步
在并行编程中,进程或线程的阻塞和非阻塞、同步和异步是非常常见的名词。准确地说,这4个名词有非常明显的区别,但是在某些文献中,阻塞与同步、非阻塞与异步的含义是一样的。
具体来说,阻塞是相对于进程或线程本身而言,如果一个操作并不阻碍进程或线程,接着执行代码,称这个操作为“非阻塞”,反之则为“阻塞”。相对非阻塞来说,阻塞更为常见,因为非阻塞要求开发人员手动保证操作的完成,这可能会带来数据一致性问题。
同步或异步则是针对通信的多个进程或线程,如果一个进程或线程与其他进程与线程通信时,不需要其他线程做好准备,称之为“异步”,反之则为“同步”。
阻塞和同步的具体含义可能会依据不同的编程环境、语言等有微小的不同。比如对于某些 MPI 异步数据传输函数实现来说,数据传输时传输的缓冲区和结果在异步操作返回时是否立即可用