官术网_书友最值得收藏!

Summary

By now, I hope I have proved to you that you can write reactive applications using core.async. It's an extremely powerful and flexible concurrency model with a rich API. If you can design your solution in terms of queues, it is more than likely that core.async is the tool you want to reach for.

This version of the stock market application is shorter and simpler than the version that uses only the standard Java API we developed earlier in this book in Chapter 3, Asynchronous Programming and Networking. For instance, we didn't have to worry about thread pools. On the other hand, it feels like it is a little more complex than the version we implemented using Reactive Extensions in Chapter 3, Asynchronous Programming and Networking.

This is because core.async operates at a lower level of abstraction when compared to other frameworks. This became especially obvious in our application, as we had to worry about creating broadcasting channels, go loops, and so on—all of which can be considered incidental complexity, and not directly related to the problem at hand.

core.async does, however, provide an excellent foundation for building our own CES abstractions. This is what we will be exploring in the next chapter, when we create our own framework using core.async as a foundation.

主站蜘蛛池模板: 崇文区| 武邑县| 乌鲁木齐市| 湘乡市| 冀州市| 德惠市| 海淀区| 乌拉特前旗| 新源县| 克什克腾旗| 张家港市| 江安县| 曲沃县| 承德县| 宜丰县| 珠海市| 元氏县| 永泰县| 塔河县| 广饶县| 汝州市| 上饶市| 来安县| 鄂伦春自治旗| 隆回县| 巨野县| 云梦县| 神农架林区| 将乐县| 法库县| 砀山县| 鄂伦春自治旗| 太保市| 天全县| 资中县| 漳州市| 伊吾县| 松溪县| 金秀| 株洲县| 邵武市|