草庐IT

language-concurrency

全部标签

android - java.util.concurrent.TimeoutException : android. view.ThreadedRenderer.finalize() 10 秒后超时

我在Lollipop上收到了这个奇怪的崩溃报告。我的应用程序基本上是一个浏览器,因此它大量使用了WebView,但我不知道问题在那里发生。无论如何,崩溃报告并没有提供太多有用的信息,它基本上就是我在下面粘贴的内容:java.util.concurrent.TimeoutException:android.view.ThreadedRenderer.finalize()timedoutafter10secondsatandroid.view.ThreadedRenderer.nDeleteProxy(NativeMethod)atandroid.view.ThreadedRenderer

language-agnostic - 为什么内存地址用十六进制数表示?

每当我看到直接引用内存上特定位置的C程序(例如内存屏障)时,它都是用十六进制数字完成的,在Windows中,当你得到一个segfualt时,它会显示内存被一个十六进制数字分隔。例如:*(0x12DF)我想知道为什么内存地址用十六进制数字表示?是有什么特殊原因还是只是约定俗成? 最佳答案 内存通常以较大的单元(例如页面或段)来操作,它们大小往往是2的幂。因此,如果地址以十六进制表示,则为更容易将它们阅读为page+offset或类似的结构。小数很难,因为令人讨厌的5倍,而且二进制地址太长而难以阅读。

language-agnostic - "Out Of Memory"是可恢复的错误吗?

我已经编程了很长时间,当我看到的程序内存不足时,它们会尝试清理并退出,即优雅地失败。我不记得上一次看到有人真正尝试恢复并继续正常运行是什么时候了。如此多的处理依赖于能够成功分配内存,尤其是在垃圾收集语言中,似乎内存不足错误应该归类为不可恢复。(不可恢复的错误包括堆栈溢出等。)使它成为可恢复错误的有力论据是什么? 最佳答案 这真的取决于你正在构建什么。对于一个网络服务器来说,一个请求/响应对失败但随后继续处理更多请求并不是完全不合理的。但是,您必须确保单个故障不会对全局状态产生不利影响——这将是一个棘手的问题。鉴于在大多数托管环境(例

c++ - 根据intel博客实现concurrent_vector

我正在尝试实现一个线程安全的无锁容器,类似于std::vector,根据这个https://software.intel.com/en-us/blogs/2008/07/24/tbbconcurrent_vector-secrets-of-memory-organization据我了解,为了防止重新分配并使所有线程上的所有迭代器无效,它们添加了新的连续block,而不是单个连续数组。他们添加的每个block的大小都是2的递增幂,因此他们可以使用log(index)来找到应该在[index]处的项目所在的正确段。据我所知,他们有一个指向段的静态指针数组,所以他们可以快速访问它们,但是他们

c++ - 绑定(bind)错误 "The C++ Programming Language [4th Edition] - Bjarne Stroustrup"

我在BjarneStroustrup的书中找到了这段代码:这段代码的问题是变量i没有停留在2,而是递增到3。你可以在这里查看:https://wandbox.org/permlink/p5JC1nOA4pIpsgXb我们不必使用std::ref()来增加这个变量。这是书中的错误还是自C++11以来发生了一些变化? 最佳答案 示例不正确,bind确实会复制其参数,除非您将其包装在std::reference_wrapper中正如文字正确所说,但这不是示例显示的内容。在示例中,参数i传递给bind返回的仿函数,而不是bind本身。如果示

c++ - 为什么 concurrent_queue 是非阻塞的?

在VS2010引入的并发运行时,有一个concurrent_queue类。它有一个非阻塞的try_pop()函数。与英特尔线程构建模块(TBB)类似,从2.1版升级到2.2版时,阻塞的pop()调用已被删除。我想知道阻塞调用有什么问题。为什么从TBB中删除?还有为什么没有阻塞concurrent_queue?我处于需要阻塞并发队列的情况,并且我不想忙于等待。除了自己写队列,并发运行时是否还有其他可能? 最佳答案 来自acommentfromArchRobison,并没有更多"horse'smouth"比那个(a):PPL的concu

MongoDB 文本索引错误 : language override not supported

我使用的是2.6.1版。我正在尝试创建文本索引,但出现错误:{"connectionId":4932,"err":"languageoverrideunsupported:en-US","code":17262,"n":0,"ok":1}正在搜索的文档有一个值为“en-US”的“语言”字段,但它不用于覆盖文本搜索中的语言。我试图创建文本索引来指定一个不存在的字段(“lang”);但是,我得到了同样的错误。我能够在2.6.0版上很好地创建索引。有没有办法创建文本索引并忽略language_override字段?这是我在2.6.0上使用的工作命令(不适用于2.6.1):db.collect

MongoDB 文本索引错误 : language override not supported

我使用的是2.6.1版。我正在尝试创建文本索引,但出现错误:{"connectionId":4932,"err":"languageoverrideunsupported:en-US","code":17262,"n":0,"ok":1}正在搜索的文档有一个值为“en-US”的“语言”字段,但它不用于覆盖文本搜索中的语言。我试图创建文本索引来指定一个不存在的字段(“lang”);但是,我得到了同样的错误。我能够在2.6.0版上很好地创建索引。有没有办法创建文本索引并忽略language_override字段?这是我在2.6.0上使用的工作命令(不适用于2.6.1):db.collect

node.js - Node/ express : concurrency issues when using session to store state

因此,我为此进行了相当多的搜索,发现了几个有点相似的问题,但没有一个真正解决了这个问题,所以我认为这值得自己提出一个问题。我有一个快速应用程序,其中包含一组修改session以保持状态的路由。问题是,如果有多个并行请求,由于请求之间的竞争条件,session将不时被覆盖。通常...app.use(express.static('/public'));app.use(session(...));app.route('methodA').get(function(req,res,next){doSomethingSlow().then(function(){req.session.a='f

concurrency - Node.js 或 Erlang

当谈到它可以处理的并发级别时,我真的很喜欢这些工具。Erlang/OTP看起来像更稳定的解决方案,但需要更多的学习和大量深入研究函数式语言范式。看起来Erlang/OTP在多核CPU方面做得更好(如果我错了,请纠正我)。但是我应该选择哪个?从短期和长期角度来看,哪个更好?我的目标是学习一种工具,它可以比传统语言更容易地在高负载下扩展我的Web项目。 最佳答案 我会试试Erlang。尽管这将是一个更陡峭的学习曲线,但由于您将学习一门函数式编程语言,因此您会从中获得更多yield。此外,由于Erlang专为创建可靠、高度并发的系统而设计