C 在同步函数中处理阻塞?
我基本上必须为操作系统创建一个简化的设备控制器。我需要创建同步和异步函数,将一个字的数据输入/输出到队列,当“设备”准备就绪时,会发出信号&函数返回。同步功能会自行阻塞,直到设备从队列和信号功能(输出)中删除字,直到满足请求(输入) 我不知道如何处理需要阻塞的同步函数,直到请求得到处理。如何实现阻塞方面?使用pthread锁可以满足我的需要吗C 在同步函数中处理阻塞?,c,operating-system,blocking,C,Operating System,Blocking,我基本上必须为操作系统创建一个简化的设备控制器。我需要创建同步和异步函数,将一个字的数据输入/输出到队列,当“设备”准备就绪时,会发出信号&函数返回。同步功能会自行阻塞,直到设备从队列和信号功能(输出)中删除字,直到满足请求(输入) 我不知道如何处理需要阻塞的同步函数,直到请求得到处理。如何实现阻塞方面?使用pthread锁可以满足我的需要吗 谢谢。如果您在用户空间:是的,请使用pthread互斥体。在使用者上,如果没有可用数据,您将pthread\u mutex\u lock。在produce
谢谢。如果您在用户空间:是的,请使用pthread互斥体。在使用者上,如果没有可用数据,您将
pthread\u mutex\u lock
。在producer上,新数据提交到队列后,您将pthread\u mutex\u unlock
。阻塞操作由内核调度程序处理。阻塞I/O类型操作的通用用户空间端是一个条件变量或信号量,但一些标准I/O机制,如read
和write
也直接支持阻塞。