Task 如何在Ada中紧急通知任务?

Task 如何在Ada中紧急通知任务?,task,ada,Task,Ada,我有一个执行顺序逻辑的任务,我想阻止这个任务执行另一个任务的逻辑。有没有办法做到这一点而不引起会合? 如何暂停任务? 提前感谢。您可以使用并将要停止的部分放入可中止的部分,或直接使用以终止任务 如果您使用GNAT,您可以查看GNAT.Tasking包。您可以使用并将要停止的部分放入可中止的部分,或者直接使用以终止任务 如果使用GNAT,您可以查看GNAT.Tasking包。通常,最好使用检查点(如受保护对象标志)来构造顺序逻辑,在这里可以进行简短测试,以查看是否有中止信号。受保护对象被设计为轻量

我有一个执行顺序逻辑的任务,我想阻止这个任务执行另一个任务的逻辑。有没有办法做到这一点而不引起会合? 如何暂停任务? 提前感谢。

您可以使用并将要停止的部分放入可中止的部分,或直接使用以终止任务

如果您使用GNAT,您可以查看GNAT.Tasking包。

您可以使用并将要停止的部分放入可中止的部分,或者直接使用以终止任务


如果使用GNAT,您可以查看GNAT.Tasking包。

通常,最好使用检查点(如受保护对象标志)来构造顺序逻辑,在这里可以进行简短测试,以查看是否有中止信号。受保护对象被设计为轻量级并发机制,以支持此类快速测试

它真的需要在语句序列中的任何一点上都是可中断的吗?完成一个语句块或迭代并进行标志检查所需的几微秒或几毫秒的额外成本真的不可接受吗?您预计需要中止处理序列的频率是多少


拥有定义良好的检查点,在该检查点处测试提前终止处理的信号,可以确保序列以已知状态存在,这有助于验证正确的操作并在出现错误时进行调试。

通常,最好使用检查点(如受保护对象标志)来构造序列逻辑,可以做一个简短的测试,看看是否有中止的信号。受保护对象被设计为轻量级并发机制,以支持此类快速测试

它真的需要在语句序列中的任何一点上都是可中断的吗?完成一个语句块或迭代并进行标志检查所需的几微秒或几毫秒的额外成本真的不可接受吗?您预计需要中止处理序列的频率是多少


拥有定义良好的检查点,在该检查点处测试提前终止处理的信号,可以确保序列以已知状态存在,这有助于验证正确的操作,并在出现错误时进行调试。

您可以通过在内部实现来保护此操作或数据


我觉得你在寻找某种锁定方案。使用受Ada保护的对象实现各种不同的锁定方案是相当容易的,这样您就不需要在特定任务之间进行显式握手。

您可以通过在内部实现来保护此操作或数据


我觉得你在寻找某种锁定方案。使用受Ada保护的对象实现各种不同的锁定方案是相当容易的,这样您就不需要在特定任务之间进行显式握手。

您可能需要提供更多详细信息,然后人们才能在此处给出知情的响应。您可能需要提供更多详细信息,然后人们才能在此处给出知情的响应。