vertx 之 vertx.executeBlocking 使用的问题

资料上都说这个是用来执行阻塞代码的,其实就是弄个线程去执行所谓的阻塞代码,

只要扯上线程,那就会出现多线程bug。

看下面的使用实例

vertx 之 vertx.executeBlocking 使用的问题_第1张图片

本意是,使用这个vertx.executeBlocking去执行阻塞代码,读取json文件的信息,然后有个全局变量map来存储读到的信息。

实际运行的时候的日志打印如下

https://blog.csdn.net/qq_27093465?viewmode=contents

可以看到map大小的打印和读json文件的日志输出几乎是同时的。

而且,缓存的map的size是0.

问题就这么来了。就跟平时使用的多线程的问题差不多。

所以,这个 vertx.executeBlocking 去执行一些阻塞代码,这个阻塞代码,你要考虑清楚了。他其实就是弄个线程单独去干一些事情。要考虑并发的问题。

你可能感兴趣的:(vertx)