def tornado_combiner(configs, use_gevent=False, start=True, monkey_patch=None,
                     Container=None, Server=None, threadpool=None):
    servers = []
    if monkey_patch is None:
        monkey_patch = use_gevent
    if use_gevent:
        if monkey_patch:
            from gevent import monkey
            monkey.patch_all()
    if threadpool is not None:
        from multiprocessing.pool import ThreadPool
        if not isinstance(threadpool, ThreadPool):
            threadpool = ThreadPool(threadpool)
    for config in configs:
        app = config['app']
        port = config.get('port', 5000)
        address = config.get('address', '')
        server = tornado_run(app, use_gevent=use_gevent, port=port,
                             monkey_patch=False, address=address, start=False,
                             Container=Container,
                             Server=Server, threadpool=threadpool)
        servers.append(server)
    if start:
        tornado_start()
    return servers