首页 文章
  • 8 votes
     answers
     views

    SLF4J初始化 - 替代 Logger

    我正在Scala中做一个项目,我正在使用带有Logback的slf4j进行日志记录 . 现在,日志记录初始化似乎不是线程安全的 . 作为一种解决方案,slf4j正在创建替代 Logger ,即NoOp-loggers,它吞下初始化期间生成的日志语句 . The slf4j homepage就此问题表示: 替代记录程序是在底层日志记录系统的默认配置阶段创建的 . 高度可配置的日志记录系统(如lo...
  • 780 votes
     answers
     views

    什么是比赛条件?

    编写多线程应用程序时,遇到的最常见问题之一是竞争条件 . 我对社区的问题是: 什么是比赛条件?你怎么发现它们?你怎么处理它们?最后,你如何防止它们发生?
  • 3 votes
     answers
     views

    Go HTTP Handler中的简单竞争条件 - 这真的是竞争条件吗?

    鉴于下面的代码,我试图了解为什么Go竞赛检测器( go run -race example.go )不会抱怨竞争条件 . var count int func main() { http.HandleFunc("/a/", func(w http.ResponseWriter, r *http.Request) { count++ f...
  • 1 votes
     answers
     views

    关闭Go Channels 时进入竞争状态

    以下Go代码示例在 c <- byte(0) 和 close(c) 行之间具有Race条件 . 使用 go test -race 运行代码时会发出信号 . func TestRace(t *testing.T) { var c = make(chan byte, 20) go func() { defer func() { if r :...
  • -1 votes
     answers
     views

    检测导入包中的竞争条件

    我有一个包,我写了一个 golang 代码 . 我担心程序运行不正常,因为它会不时输出不同的结果 . 可能是因为 race condtions . 所以我跑多次: go run -race myprogram 但我没有任何警告或错误 . 可能是错误发生在我导入的另一个包中 . 据我了解, -race 标志不会检测到它们 . 如果是这样,我该怎么做(检测不在我的代码中但在我导入的包中发生的种族条...
  • 12 votes
     answers
     views

    如何正确使用sync.Cond?

    我无法弄清楚如何正确使用sync.Cond . 据我所知,锁定Locker和调用条件的Wait方法之间存在竞争条件 . 此示例在主goroutine中的两条线之间添加了一个人为延迟,以模拟竞争条件: package main import ( "sync" "time" ) func main() { m := sync.Mute...
  • 1 votes
     answers
     views

    IE 11 window.open()与javascript脚本加载竞争条件问题

    Goal: 我有一个名为“ImageGallery”的ReactJs网络应用程序,它当前已集成在我们的业务套件系统中(这是一个包含旧技术,主要是Web表单的庞大系统) . 在我们的系统中,我们需要添加一个按钮来启动浏览器窗口来旋转应用程序 . ImageGallery应用程序依靠当前系统将数据传递给它来显示,这意味着,当ImageGallery应用程序加载时,它会调用业务套件系统端的功能,如 wi...
  • 44 votes
     answers
     views

    私有构造函数,以避免竞争条件

    我正在读这本书 Java Concurrency in Practice session 4.3.5 @ThreadSafe public class SafePoint{ @GuardedBy("this") private int x,y; private SafePoint (int [] a) { this (a[0], a[1])...
  • 21 votes
     answers
     views

    为什么Python threading.Condition()notify()需要锁定?

    由于不必要的性能影响,我的问题特别提到为什么它是这样设计的 . 当线程T1有这个代码时: cv.acquire() cv.wait() cv.release() 和线程T2有这个代码: cv.acquire() cv.notify() # requires that lock be held cv.release() 发生的事情是T1等待并释放锁定,然后T2获取它,通知 cv 唤醒T1 . ...
  • 2 votes
     answers
     views

    如何诊断奇怪的竞争条件错误?

    我们跟踪的错误发生在特定的基于VxWorks的嵌入式环境中(供应商修改了未知扩展的内容,并提供了许多VxWorks内容的抽象层) . 我们有两个以不同优先级运行的任务,大约每100毫秒执行一次 . 具有较高优先级的任务简单地计数添加计数一个整数(只是它做任何事情),而具有较低优先级的任务创建一个字符串,如下所示: std::string text("Some text"); ...
  • 0 votes
     answers
     views

    pthread_create回写的时间

    在调用pthread_create(&id,NULL,&start_routine,arg)中,是否保证在start_routine开始运行之前将线程ID写入id?这些联机帮助页很清楚start_routine可能但不一定会在调用pthread_create之前开始执行,但是当线程id被写回传递的thread参数时它们是静默的 . 我的具体情况是我有一个pthread_create的包装器: in...
  • 1 votes
     answers
     views

    停止并重新启动BGWorker时,取消标志是否会受到竞争条件的影响?

    我见过这个answer 是的,BackgroundWorker类在引发RunWorkerCompleted事件之前将CancellationPending属性设置为false . 以及CancelAsync和RunWorkerAsync的文档 我有这个代码阻止 InvalidOperationException 被抛出 . 这是我的代码,所以 WorkerSupportsCancellatio...
  • 9 votes
     answers
     views

    如何使用React和鼠标事件传播实现可重用的组件?

    考虑以下典型的React文档结构: Component.jsx <OuterClickableArea> <InnerClickableArea> content </InnerClickableArea> </OuterClickableArea> 这些组件的组成如下: OuterClickableArea.js ...
  • 0 votes
     answers
     views

    QTcpSocket readyRead信号在传输数据时停止发射

    我在使用QT-Framework为自己编写一些网络应用程序时偶然发现了一个问题 . 我非常喜欢信号/插槽系统,但我感觉我在这里遇到了竞争状态 . 我的服务器正在快速发送小的“电报”,因为它们不值得自己的TCP数据包(很好) . 在客户端,我使用套接字readyRead-slot并处理我的处理程序槽“socketHasData”中的incomming数据 . 问题是,当执行插槽内的代码时,似乎不会重...
  • 6 votes
     answers
     views

    信号量没有破坏/解除竞争条件

    注意:在公开集思广益之后,我已经大量编辑了这个问题 . 然而,所描述的实际算法以及关于它们是否足以避免比赛的问题应该是相同的 . 我正在尝试实现信号量,避免glibc错误号12674中描述的竞争条件: http://sourceware.org/bugzilla/show_bug.cgi?id=12674 基本上,如果你不关心这种破坏的竞争条件,写一个基于futex的信号量的有效方法是: 帖子: ...
  • 5 votes
     answers
     views

    char数组上的C内存模型和竞争条件

    基本上我无法理解这一点:(来自Bjarne FAQ) 但是,大多数现代处理器不能读取或写入单个字符,它必须读取或写入整个字,因此对c的赋值实际上是“读取包含c的单词,替换c部分,然后再将单词写回 . ''因为对b的赋值是相似的,所以即使线程没有(根据它们的源文本)共享数据,两个线程也有很多机会相互冲突! 那么char数组如何在元素之间没有3(7?)字节填充的情况下存在?
  • 3 votes
     answers
     views

    保证C中的良性竞争条件

    我知道C标准并不保证数据竞争存在的任何事情(我相信数据竞争具有未定义的行为,意味着任何事情都会发生,包括程序终止,修改随机内存等等) . 是否有任何架构,其中包含一个线程写入内存位置的数据争用和一个从同一位置读取的线程(没有同步)不会导致读取操作读取未定义的值以及内存位置“最终”(在内存屏障之后)更新为写操作写入的值? [编辑以“数据竞赛”取代“竞争条件”]
  • 1 votes
     answers
     views

    这个多线程java代码中确实存在竞争条件吗?

    我在这个question中看到了一段代码,我无法理解(很可能是由于这个领域的初学者) . 这个问题谈到“一个竞争条件,有时 生产环境 者将完成,发出信号,消费者工作者将在消耗队列中的所有东西之前停止 . ” 根据我的理解,只有在 生产环境 者决定不在队列中添加任何项目之后,才会在消费者上设置“isRunning” . 因此,如果消费者线程将isRunning视为FALSE然后看到inputQu...
  • 1 votes
     answers
     views

    在注册服务工作者之前尝试运行获取功能 .

    我正在尝试运行一个获取函数,它将从我的服务器获取一些值 . 但由于某种原因,服务工作者的注册首先触发,并且其“app_key”未定义,导致它抛出异常 . 这似乎是一种竞争条件,我不知道如何解决 . 我不确定如何将值分配给变量以确保它们可被其他函数看到 . 任何建议,将不胜感激 . project_url = window.location.hostname; var vapi_key; var ...
  • 1 votes
     answers
     views

    反应切换列出竞争条件?

    我正在尝试实现一个队列,其中用户可以将项目从一个列表切换到另一个列表 . 即从“可用”到“与客户端”,其中队列的状态保存在根React组件中,如下所示: this.state = { queue: { available: [{ name: "example", id: 1 }, ...], withClient: [], unavailable: ...
  • 2 votes
     answers
     views

    在Go中,从并发可访问的结构中检索后,哪些数据类型可以安全地读取和写入?

    可能不清楚问题本身我在这之后是什么,所以让我澄清一下 . 作为并发练习,我正在编写一个需要多个同时请求可访问的缓存 . 缓存内容的类型为interface {},因此它可以包含任何内容,包括切片,贴图和结构 . 当我使用Get方法获取某些东西时,我在读取它时对其进行RLock,然后返回内容并使用延迟的RUnlock完成 . 这适用于数字和字符串以及返回时自动复制的任何其他值 . 但是我担心切片,贴...
  • 0 votes
     answers
     views

    数据竞争是命令式编程所固有的,也是并行计算的障碍?

    老实说,我不研究这个计算领域 . 实际上我的参考文献是一些网络和学术文章然后我不安全但对并行计算的一些概念感到好奇 . 我已经制定了两个句子,并想验证它 . First one: 命令式语言使用变量来抽象计算机的硬件内存 . 如果有两个并行线程并且至少有一个执行写操作,而没有同步机制,则会发生 data race . 我们可以认为数据竞争是命令式编程范式的内在特征吗? Second one:...
  • 11 votes
     answers
     views

    drd和helgrind的当前状态支持std :: thread

    当我将代码转换为C 11时,我非常希望将我的pthread代码转换为std :: thread . 但是,我似乎在drd和helgrind中的非常简单的程序中获得了错误的竞争条件 . #include <thread> int main(int argc, char** argv) { std::thread t( []() { } ); t.join(); ...
  • 0 votes
     answers
     views

    使用waitgroup和无缓冲通道的竞争条件

    在这篇文章Understanding golang channels: deadlock中得到(正确)解决我的初始问题之后,我提出了一个稍微不同的解决方案(在我看来更好看: // Binary histogram counts the occurences of each word. package main import ( "fmt" "stri...

热门问题