“阻塞”一词在编程中意味着什么?

时间:2010-03-09 08:38:07

标签: python api blocking

有人可以提供外行定义和用例吗?

2 个答案:

答案 0 :(得分:22)

“阻止”表示呼叫者等待被叫方完成其处理。例如,套接字的“阻塞读取”等待直到有数据要返回; “非阻塞”读取不会,它只返回是否有读取内容的指示(通常是计数)。

您会听到这个术语主要围绕访问不一定需要CPU注意的资源的API - 例如I / O.您还可以在多线程中听到它:从线程A到线程B的调用可能被设计为“阻塞”(保持线程A),直到线程B达到相关状态来处理或至少接受请求。 (最明显的例子是“join”,通常意味着“我,线程A,想要等到线程B终止” - 在退出多线程程序时使用它。)

答案 1 :(得分:3)

简单来说:如果你调用一个函数来阻止程序继续运行,直到用户执行了一些动作(或者你的程序没有控制的其他动作),这个调用就叫做阻塞调用。