阻塞模式的原理是什么?

时间:2010-08-14 06:00:08

标签: c++ c windows multithreading blocking

喜欢阻止文件播放,原理是什么以及如何实现?

2 个答案:

答案 0 :(得分:1)

“阻塞”意味着操作不会将控制权返回给其调用者,直到它“阻塞直到”为止。

这可以通过以下几种方式实现:

  • 将阻止责任委托给其他人。例如,调用可能会阻止的pthread_mutex_lock。这也使你的功能块。执行此操作的其他功能是read以及任何其他可能阻止的系统调用。
  • 自旋。换句话说,有一些看起来像while (!condition) {}的代码。这将占用整个CPU内核,因此如果你要在任何大量时间内阻塞,这不是一个好习惯。
  • 使用信号处理程序。调用sleep(5000)或其他类似内容,并通过SIGALARM或其他异步方法终止睡眠。

对于媒体播放器,“阻止直到文件完成播放”只意味着“等到媒体文件在播放前完成播放”。

答案 1 :(得分:0)

让一个线程等待一个事件,当文件完成播放时,该事件将被另一个线程触发。