Ada包被动共享 Shared_Passive

有时我们需要在一个包中定义一些公用的数据,可以被几个独立的程序共享使用 . 在不使用编译指令Shared_Passive之前这是很难直接办到的,将不得不使用文件手段或数据库手段来实现共享功能。使用Shared_Passive共享指令后可以实现这个目的。上代码。


-- 共享包
package Com is


   pragma Shared_Passive;

   type ints is array (Natural range<>) of Integer;

   I100:ints(1..100);



end Com;
-- 测试代码1:写入数据


with com;

procedure ComTest1 is

begin

   for i in 1..100 loop

      com.I100(i):=i+100;

   end loop;

   delay(100.0);


end ComTest1;
-- 测试代码2:读取数据


with com;

with Ada.Text_IO;

procedure ComTest2 is

begin


   for i in 1..100 loop
      Ada.Text_IO.Put_Line(COM.I100(i)'Img);
   end loop;

   delay(150.0);


end ComTest2;

我们首次运行测试程序1,写入数据后,会在程序所在目录下产生一个Com.I100的文件。如果测试程序1首次运行且未结束运行时,运行测试程序2会阀先最后一个数据并未写入完成。如果程序1未结束运行,再运行一次程序1(2个通用的例程运行)则读取立即会变得正常。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值