流控的目的在于控制用户数据(很多模块,有JAVA, 有C++)到VPN真实流量。
其实这个很好实现,让所有模块都去申请流量即可控制。
但是问题的关键在于如何实现JAVA和C++的程序一起去流控?
还好JAVA提供了共享内存,但是是否和mmap的调用一致呢?需要写个程序验证一下
C++:
目的在于打开共享内存,读取前4个字节的int,当然JAVA打开了就是来修改的。
java的如下:
然后先启动C++的程序,看到读取到的指没有变化,当启动JAVA的程序以后,
读取到的值随JAVA变化,说明完全可以一起操作共享内存,没有什么手脚
问题到这里还没有完,多个模块申请流控是需要同步手段的。
java和c++的跨语言如何实现同步呢?
文件锁是一种方式,而且java也支持,但是也需要验证一下。