zoukankan      html  css  js  c++  java
  • Verticle 1

    Verticle类型
    有三种不同类型的 verticles:

    标准 Verticles
    这些都是最常见和最有用的类型 — — 他们总是使用事件循环线程执行。更多讨论在下一节。

    Worker Verticles
    一个实例是永远不会有多个线程并发执行。

    多线程的worker verticles
    一个实例可以由多个线程同时执行。

    标准 verticles
    标准verticles当创建和调用start方法时分配一个event loop。调用执行都在相同的event loop上。

    这意味着我们可以保证您的verticles实例中的所有代码总是都执行相同的事件循环上 (只要你不调用它自己创建的线程!)。

    这意味着可以在程序里作为单线程编写所有的代码,把担心线程和扩展的问题交给Vert.x。没有更多令人担忧的同步和更多不稳定的问题,也避免了多线程死锁的问题。

    Worker verticles
    Worker verticles就像标准的verticles一样,但不使用事件循环执行,从 Vert.x worker线程池使用一个线程。

    worker verticles 专为调用阻塞的代码,因为他们不会阻止任何事件循环。

    如果你不想使用worker verticles运行阻塞的代码,可以在事件循环上直接运行内联阻塞代码。

    如果您要以worker verticles的方式部署verticle,需要调用 setWorker.

    DeploymentOptions options = new DeploymentOptions().setWorker(true);
    vertx.deployVerticle("com.mycompany.MyOrderProcessorVerticle", options);
    Worker verticle实例永远不会有多个线程并发执行 ,但可以在不同的时间由不同的线程执行。

    多线程Worker verticles
    多线程的worker verticle就像正常worker verticle,但它是可以由不同的线程同时执行。

    警告! 多线程的worker verticle 是一项高级的功能,大多数应用程序会对他们来说没有必要。因为在这些 verticles 并发,你必须非常小心,使用标准的 Java 技术的多线程编程,以保持verticle一致状态。

  • 相关阅读:
    storm学习之七-storm UI页面参数详解
    kafka学习之-KafkaOffsetMonitor后台监控
    hbase深入了解
    storm学习之六-使用Maven 生成jar包多种方式
    kafka学习之-集群配置及安装
    Python的Web应用框架--Django
    plugins/python/uwsgi_python.h:2:20: fatal error: Python.h: No such file or directory
    key-value数据库-Redis
    SUSE 12安装详解
    分布式网络文件系统--MooseFS
  • 原文地址:https://www.cnblogs.com/ukzq/p/13743185.html
Copyright © 2011-2022 走看看