小编Phi*_* La的帖子

Delay 语句是否将进程置于阻塞状态?

如果我们在 Ada 中有两个任务,并且如果我有一个延迟语句,无论是“延迟 0.0”还是“延迟 1.0”,这是否会使该进程进入阻塞状态?或者流程状态在这里不适用?以下是一个简单的代码来说明我的问题:

with Ada.Text_IO; use Ada.Text_IO;

procedure Two_Tasks is

     task Task_1;
     task Task_2;

     task body Task_1 is
     begin
      for I in 1 .. 10 loop
         Put_Line ("Visited task 1, iteration number" & Integer'Image (I));
         delay 0.0;
      end loop;
     end Task_1;
  
     task body Task_2 is
     begin
      for I in 1 .. 10 loop
         Put_Line ("Visited task 2, iteration number" & Integer'Image (I));
      end loop;
     end Task_2;

begin
   Put_Line ("Visited the main task");
end Two_Tasks;
Run Code Online (Sandbox Code Playgroud)

就进程状态而言,我指的是下图中显示的进程/线程状态:

在此处输入图片说明

concurrency state process ada

2
推荐指数
1
解决办法
68
查看次数

标签 统计

ada ×1

concurrency ×1

process ×1

state ×1