如何在 Ada95 中使用线程?我可以使用哪些函数来创建、销毁、停止和启动它们?
我如何在这种语言中使用信号量?
并发性内置于该语言中,因此您可以为任务(即线程)和受保护对象(即比信号量/互斥体/条件变量更强大)使用特定的 Ada 语法。这使得使用 Ada 编写多线程应用程序比使用 C/Java 等其他语言更容易(并且更不容易出错)。
不建议在 Ada 中使用信号量,受保护对象的功能要强大得多(但如果需要,您可以使用受保护对象轻松构建信号量)。
一些小的语法示例。任务(和受保护的对象)可以是静态的......
task My_Task;
task body My_Task is
begin
-- Just print this to stdout and exit thread
Ada.Text_IO.Put_Line("Hello, concurrent World!");
end;
...或动态创建
task type My_Task_Type(N : Natural);
task body My_Task_Type(N : Natural) is ...
...
T1 := new My_Task_Type(100);
abort T1;
比其他语言简洁得多(并且更易于维护)!请参阅用于管理动态任务的“new”和“abort”关键字,以及其他专用包(例如 Ada.Synchronous Task Control)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)