我使用std :: thread来执行多个线程.我将指向数组的指针作为参数传递,类似于:
my_type* rest[count];
//Fill rest array
std::thread(fnc, rest, count);
Run Code Online (Sandbox Code Playgroud)
我似乎遇到的问题是,在某个地方,'rest'中的指针值被破坏了.我在调用std :: thread之前打印出指针值,并且std :: thread代表我调用函数中的第一件事,并且值不匹配.它似乎相当随机,有时它们会匹配,有时不匹配(当后者发生时会产生段错误).
我知道(从我在这个主题上找不到的东西)std :: thread复制参数,我认为我的问题源于此,并且有一个特殊的函数std :: ref()允许它传递引用,但没有一个具体提到指针.我尝试过各种技术尝试用std :: ref()传递这个数组,但我还没有解决这个问题.
我是否认为这可能是我的问题的原因,或者我是在咆哮错误的树?
我需要在我的 Kafka 设置中更改值序列化器/反序列化器(出于测试目的,我一直在使用 IntegerSerializer/IntegerDeserializer)。使用 JAVA API,它完全按预期工作;但是,当使用控制台工具时,它似乎无法正常工作。
我所做的所有故障排除使我得出一个结论:似乎 kafka-console-producer 忽略了 Serializer 选项。我已经尝试过--property value.serializer,--producer-property value.serializer并--value-serializer在带有--producer.config参数的配置中设置它。
它不仅无法将数据序列化为整数,它甚至不在乎我是否输入无意义作为参数值。使用 kafka-console-consumer(与它的 IntegerDeserializer 完美配合),如果我输入--value-deserializer not.a.real.class它会抛出一个未找到类的异常;但是--value-serializer not.a.real.class在 kafka-console-producer 上,什么都不做。
在 JAVA API 中的生产者上设置这些值,效果很好(如果我输入无意义作为序列化器类,则会抛出异常),但在使用 kafka-console-producer 时则不然。
这是我尝试运行控制台生产者的方法之一的示例:
kafka-console-producer --broker-list IPADDRESS:9092 --topic TOPIC --property value.serializer=org.apache.kafka.common.serialization.IntegerSerializer
Run Code Online (Sandbox Code Playgroud)
以及相关消费者:
kafka-console-consumer --bootstrap-server IPADDRESS:9092 --topic TOPIC --property value.deserializer=org.apache.kafka.common.serialization.IntegerDeserializer
Run Code Online (Sandbox Code Playgroud)
有没有人设法使用命令行工具使其工作?有什么明显的我遗漏了吗?
我的应用程序是一个GUI应用程序,通过终端(通过cout)提供有用的(虽然是可选的)信息.
在Windows中我要么出现一个控制台(通过编译为控制台应用程序,或动态分配),或者我没有.
我的目的是使用控制台,如果它是从控制台运行,但如果不是,则完全忽略控制台.(基本上是在Linux和OS X中发生的事情).
我不希望重定向到文件(在使用cin的情况下,这不是一个可行的解决方案).
有没有办法将Windows中的GUI应用程序连接到运行它的控制台,当且仅当它从控制台运行时?
使用std :: forward_list是否有删除和插入时的数据竞争?例如,我有一个线程除了在列表的末尾添加新元素之外什么都不做,我有另一个线程可以遍历(相同)列表并可以从中删除元素.
根据我所知的链表,每个元素都有一个指向下一个元素的指针,所以如果我擦除最后一个元素,同时我插入一个新元素,这会导致数据竞争或者这些容器的工作方式不同(或他们是否处理这种可能性)?
如果是数据竞赛,是否有(简单而快速)的方法来避免这种情况?(注意:插入的线程是两者中最关键的速度.)
c++ ×3
apache-kafka ×1
c++11 ×1
cin ×1
console ×1
cout ×1
linked-list ×1
pointers ×1
windows ×1