小编Arc*_*ede的帖子

block() 、 subscribe() 和 subscribe(-) 之间有什么区别

Mono.delay(Duration.ofMillis(10)).map(d -> {
            System.out.println(d);
            return d;
        }).block();
Run Code Online (Sandbox Code Playgroud)

输出:0

当我使用subscribe()subscribe(-)方法而不是调用时,无法在控制台上看到任何输出block()

Mono.delay(Duration.ofMillis(10)).map(d -> {
        System.out.println(d);
        return d;
    }).subscribe(System.out::println);
Run Code Online (Sandbox Code Playgroud)

doOnSubscribe(-)难道我们只需要在这个方法之后使用吗Mono.delay(-)

 Mono.delay(Duration.ofMillis(10)).doOnSubscribe(s -> {
        System.out.println("its printing doOnSubscribe");
    }).map(d -> {
        System.out.println(d);
        return d;
    }).subscribe(System.out::println);
Run Code Online (Sandbox Code Playgroud)

输出它正在打印doOnSubscribe

project-reactor spring-webflux

18
推荐指数
1
解决办法
2万
查看次数

访问派生类中的基类成员

我有一个简单的课程如下

class A {
        protected:
        int x;
        };

class B:public A
        {
        public:
        int y;
      void sety(int d)
        {
        y=d;
        }
        int gety(){ return y;}
        };

int main()  
{
B obj;
obj.sety(10);
cout<<obj.gety();
getch();
}
Run Code Online (Sandbox Code Playgroud)

如何在不创建实例的情况下从派生protected实例设置实例变量的值.A::xclass Bclass A

编辑:我们可以访问A::x使用B对象的值吗?喜欢obj.x

c++ inheritance

14
推荐指数
1
解决办法
5万
查看次数

java.util.date使用DateTimeFormatter转换为String

如何使用java将java.util.Date转换为String

 DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss")
Run Code Online (Sandbox Code Playgroud)

我得到的Date对象被传递

DateTime now = new DateTime(date);
Run Code Online (Sandbox Code Playgroud)

java datetime jodatime java-8

13
推荐指数
3
解决办法
3万
查看次数

java中有任何抽象变量吗?

在java中有任何抽象变量吗?我在构造函数中使用这个抽象变量我很确定,但我认为构造函数支持静态变量.pls澄清了我的疑问

java variables abstract

12
推荐指数
2
解决办法
3万
查看次数

什么是volatile复制构造函数?

你能给出一个简单或真实的例子来演示volatile复制构造函数的用法吗?

我只是想不出一个.

c++ copy-constructor

9
推荐指数
1
解决办法
969
查看次数

AWS cdk 堆栈部署顺序

我正在寻找一种方法来指定项目中堆栈的部署顺序。我知道我可以添加依赖项,但是,这些堆栈彼此不依赖,我可能想稍后删除一些。

我有一个每个其他堆栈(例如 rds)全局所需的服务框架。这些都是从一开始就部署的。

  • 应用程序网络
  • 应用程序-环球资源

现在我想为新客户添加堆栈,这些堆栈将依赖于 2 个全局堆栈,并且相互依赖,但不依赖于任何其他客户的堆栈。

例如

  • 应用程序客户-A-EC2(取决于应用程序网络)
  • 应用程序客户A-Lambda(取决于应用程序客户A-EC2)
  • App-Customer-A-Settings(取决于 App-GlobalResources、App-Customer-A-Lambdas)

  • App-Customer-B-EC2(取决于应用程序网络)
  • App-Customer-B-Lambdas(取决于 App-Customer-B-EC2)
  • App-Customer-B-Settings(取决于 App-GlobalResources、App-Customer-B-Lambdas)

我希望所有这些堆栈都按此顺序部署。首先是全局堆栈,然后是所有客户 a,然后是所有客户 b。

然而,这就是 cdk 正在做的事情:

  • 应用程序网络
  • 应用程序-环球资源
  • 应用程序-客户-A-EC2
  • 应用程序-客户-B-EC2
  • 应用程序客户 A-Lambda
  • 应用程序客户 B-Lambda
  • 应用程序-客户-A-设置
  • 应用程序-客户-B-设置

这意味着客户A必须等到所有其他客户资源都生成后才能使用该系统等等。由于客户堆栈之间不存在交叉依赖关系,因此不必按照 cdk 的顺序进行部署。

那么,我有什么选择呢?除了添加依赖项之外?我最初认为它会按堆栈名称或构造路径按字母顺序排序,但似乎并非如此。

谢谢你!

编辑:我浏览了 cdk 应用程序的代码并找到了排序代码。目前我的情况没有办法。CDK 使用的排序类型将始终产生观察到的模式。

我现在正在通过添加依赖项来解决问题。当删除“中间”且具有依赖关系的堆栈时,我必须用参数销毁它们-e

aws-cdk

9
推荐指数
2
解决办法
2万
查看次数

在C中检测键盘事件

如何在不使用第三方库的情况下检测C语言的键盘事件?我应该使用信号处理吗?

c keyboard

8
推荐指数
1
解决办法
2万
查看次数

了解执行计划中的执行次数

以下是以下查询的简单执行计划。

询问:

SELECT TOP (25) orderid, custid, empid, shipperid, orderdate, filler
FROM dbo.Orders
ORDER BY orderid;
Run Code Online (Sandbox Code Playgroud)

执行计划: 在此处输入图片说明

我的问题是如何理解执行次数

以下是所有操作符的执行次数

嵌套循环:
估计执行次数:1
实际执行次数:1

索引扫描:
估计执行次数:1
实际执行次数:1

关键查找:
估计执行次数:25
实际执行次数:25

我的问题是

  1. 为什么嵌套循环只显示 1 个执行计数?

  2. 索引扫描也只显示一个执行计数,但它在一次执行中得到 25 行。这些行是存储在行集缓存中还是某个缓存中?嵌套循环是否会从缓存中取出一行并为每一行调用键查找 25 次?

以下是来自 Itzik Ben-Gan 的解释

例如,如果告诉它停止的 Top 迭代器出现在计划的后面,索引扫描迭代器如何知道在 25 行后停止?答案是内部 API 调用从根节点开始(在我们的例子中是 SELECT 迭代器)。此根节点调用 Top 迭代器。Top 迭代器调用一个方法 25 次,从 Nested Loops 迭代器请求一行。反过来,嵌套循环迭代器调用一个方法 25 次,从索引扫描迭代器中请求一行。因此,索引扫描迭代器不会超出它扫描的前 25 行。简而言之,虽然遵循数据流顺序来解释计划通常更直观

但是为什么执行计数只显示 1。如果我遗漏了什么,请告诉我。附上执行计划

更新(2017 年 1 月):

我问过一些关于堆栈溢出的类似问题。有关相同..的更多详细信息,请参阅此答案。

https://dba.stackexchange.com/questions/134172/set-statistics-io-for-nested-loops

sql-server sql-execution-plan

5
推荐指数
1
解决办法
6135
查看次数

C函数已弃用

我使用了以下链接中的代码:

Readline库

我定义了这样的结构

typedef struct {
  char *name;           /* User printable name of the function. */
  Function *func;       /* Function to call to do the job. */
  char *doc;            /* Documentation for this function.  */
} COMMAND;
Run Code Online (Sandbox Code Playgroud)

编译代码时,编译器会显示以下警告:

"函数已弃用[-Wdeprecated-declarations]"

那么如果我不能使用函数类型,我应该改变什么类型?

c readline compiler-warnings

5
推荐指数
1
解决办法
1857
查看次数

AWS CDK 子网选择

我正在使用 AWS CDK 创建负载均衡器。我对CloudFormation很熟悉。在创建负载均衡器期间,我想给出如下子网。

LB:
    Type: AWS::ElasticLoadBalancingV2::LoadBalancer
    Properties:
      Tags:
        -
          Key: "Name"
          Value: !Ref "AWS::StackName"
      Subnets:
        -
          Fn::ImportValue: "infra-vpc-base::SubnetIdPrivateAz1"
        -
          Fn::ImportValue: "infra-vpc-base::SubnetIdPrivateAz2"
Run Code Online (Sandbox Code Playgroud)

我尝试在 CDK 中创建 LB,如下所示。

lb = elbv2.ApplicationLoadBalancer(
        self, "LB",
        load_balancer_name="Load Balancer CDK",
        vpc = vpc,
        internet_facing= False,
        security_group= mws_vpc_sg_alb,
        vpc_subnets= ???
    )
Run Code Online (Sandbox Code Playgroud)

在上面的代码中vpc_subnets我想给出两个子网。上面代码中的vpc_subnets类型是typing.optional[aws_cdk.aws_ec2.SubnetSelection]= none.

有人可以帮助我在 AWS CDK 中选择子网吗?

amazon-web-services amazon-vpc aws-cdk

5
推荐指数
2
解决办法
2万
查看次数