multithreading 相关问题

多线程是计算机或程序通过利用多个并发执行流(通常称为线程)同时或异步执行工作的能力。

Chrome 中的嵌套 Web Worker

我正在尝试使用 Chrome 从 Web Worker 内部启动 Web Worker。从历史上看,这一直是 Chrome Host API 的一个问题,但是: 根据 ChromeStatus,截至 2018-10-22

回答 1 投票 0

避免无锁多生产者单消费者场景中丢失唤醒

我有许多线程生成我想要处理的小块数据。重要的是,我不要过多延迟这些线程,因此处理应该发生在另一个线程上(单个

回答 2 投票 0

python + Thread\TrocessPoolExecutor

我是并发.futures 的新手。下面的脚本有问题吗? def read_excel(自身): ''' 读取excel -> 解析df -> 存储到sql中 ''' file_list = ['分诊咨询记录','客...

回答 1 投票 0

使用DispatchSemaphores时如何避免线程爆炸?

为了将对公共操作的访问限制为有限数量的线程,我们可以使用 Foundation 的 DispatchSemaphore。 例如: func someFunction(操作: @escaping () -> Void) { ...

回答 1 投票 0

如何在 JavaFX 中的两个用户界面事件更新之间创建延迟?

我一直在尝试使用 JavaFX 编写俄罗斯方块代码,虽然游戏逻辑有效,但我一直在解决一个问题。 对于这个项目,我使用矩形对块进行建模;我移动这些

回答 1 投票 0

'RLMException',原因:'从错误的线程访问领域。'

我需要将我的人物模型写入领域数据库。我从来不明白这意味着什么,因为我正在使用一个 Realm 实例,并且我认为我正在使用同一个线程。我错了吗? func updatePerson(ps:personT...

回答 2 投票 0

实时系统中的线程安全数据传输架构(C语言)

简短: 我有一个负责与设备通信的模型。该模型有两个线程:一个用于通信(读取和写入),另一个用于记录结果。使用

回答 1 投票 0

Hibernate OneToMany 映射值不会在线程操作上删除

我有两种@Entity类型。一种是文档,其中包含 PDF 的 1..n 页。另一个是标签,它为文档添加上下文或描述。例如,包含美国银行的文档...

回答 1 投票 0

如何确保子线程发出的信号被主线程处理?

我的代码以多线程运行。同时,有一个 signal_handler 函数处理外部 ctrl-c 信号。 我发现 signal_handler 函数在引发 ...

回答 1 投票 0

C Pthreads - 线程安全队列实现的问题

我是多线程新手,我正在尝试实现一个简单的线程安全任务队列,其中每个线程都可以从中提取工作,直到没有更多任务为止。 ...

回答 2 投票 0

睡眠线程被中断,导致与数据库的连接丢失

我是JAVA多线程的新手,遇到了一个问题。我收到一个异常,上面写着 java.lang.InterruptedException:睡眠中断 这是在与数据库的连接丢失之后发生的...

回答 4 投票 0

当存在更多线程时,每个线程都会变慢

我有 16 个文件需要读取和处理数据。所有数据都是独立的。这是处理该数据的代码片段: int 线程计数 = 1; ConcurrentBag 项目 =...

回答 3 投票 0

并行。当存在更多线程时,每个线程都会变慢

我有 16 个文件需要读取和处理数据。所有数据都是独立的。这是处理该数据的代码片段: int 线程计数 = 1; ConcurrentBag 项目 =...

回答 3 投票 0

为什么gevent会影响子线程的asyncio使用?

gevent版本:20.10.2 Python版本:cPython 3.9 操作系统:macOS 14.3.1(M3) 描述: 我的程序使用了gevent patch,但是在程序中,我需要执行asyncio相关的代码...

回答 1 投票 0

如何在Python中将asyncio模块与TWS API一起使用?

我正在尝试在 asyncio 模块中将异步线程与 TWS API 一起使用。看来我可以正常工作,但我只需要在主函数中收集线程,以便它们都在同一个事件循环上运行?...

回答 1 投票 0

使用 Swift 在 iOS 上使用 Core Data 保存数据时出现 libsystem_platform.dylib`_os_unfair_lock_corruption_abort 错误

我是iOS开发新手。我正在使用 Core Data 在我的 iOS 应用程序中保存数据。我的应用程序正在多个视图控制器中的应用程序委托访问共享对象,并且正在读取和保存数据...

回答 2 投票 0

DispatchQueue.global().sync 方法上的数据竞赛崩溃

我的代码非常简单。 我的理解是删除操作应该是线程安全的,因为我用queue.sync包装 让队列 = DispatchQueue.global() var fetchingInProgressList:设置 我的代码非常简单。 我的理解是 remove 操作应该是线程安全的,因为我用 queue.sync 换行 let queue = DispatchQueue.global() var fetchingInProgressList: Set<String> = [] tl;博士 不,您不能使用全局队列进行线程安全同步。不过,一个简单的串行队列就可以。或者,现在,在 Swift 并发中,我们可能会找到一个“演员”。 但是全局队列不足以实现线程安全。 如前所述,global返回一个并发队列。正如文档所说: 提交到返回队列的任务是相互并发调度的。 并且 sync 同步调用它: 该函数将一个块提交到指定的调度队列以同步执行...该函数直到该块完成后才返回。 因此,sync将阻塞调用者,直到分派的工作完成(即,它“同步”运行)。但是,sync 对与同一并发队列交互的其他线程没有影响。分派到同一全局队列的工作可以与其他线程分派的工作并行运行。这违反了线程安全。这些不同的线程使用 sync 还是 async 都无关紧要。相关问题是队列是否可以阻止竞争,即阻止该队列上的并行执行。全局队列不提供这样的保证。 因此,简而言之,调度到全局队列(无论是同步还是异步)不足以实现线程安全。有两种传统技术可以通过 GCD 实现线程安全: 使用串行调度队列而不是并发队列。这样,读取和写入都不会彼此同时发生。 在调度写入时使用“屏障”。这称为“读者-作者”模式。但是您不能在全局队列上使用屏障,因此您只能在您自己的私有/自定义并发队列上执行此操作。 (FWIW,虽然读者-作者具有一定的直观吸引力,但我已将其从我的代码库中退休:需要代码清晰度和可维护性的地方有更好的模式。在那些罕见的计算密集型情况下,性能再次成为最重要的考虑因素,还有更好的选择。) 无论您选择上述哪一个,下一个问题是您是同步调度(sync)还是异步调度(async)。这取决于调用者是否必须等待分派的工作完成。例如,如果只是写入数据,我们可以使用 async 异步执行。但是,如果读取数据,我们显然必须使用 sync 同步执行此操作。 综上所述,如今,有了 Swift 并发性,我们会考虑使用 actor。 WWDC 视频中讨论了 Actor 使用 Swift Actor 保护可变状态和使用 Swift Concurrency 消除数据争用。

回答 1 投票 0

UE5 FSemaphore结构是否起到进程间同步的作用?

他们的文档上的结构描述是“进程间信号量的通用表示”,但我在网上读过其他内容,但另有说明。 他们的文档...

回答 1 投票 0

如何在单独的线程中运行websocket服务器?

我正在使用 Python 创建一个桌面应用程序,其 GUI 是用 Vue 3 编写的,并且我需要在单独的线程中运行 WebSocket 服务器。问题是 WebSocket 服务器必须持续监听...

回答 1 投票 0

Parallel.ForEach 和 DbContext

我正在使用 Parallel.ForEach,它极大地提高了我的代码的性能,但我对具有多个线程的 DbContext 感到好奇。我知道它不是线程安全的,所以我在需要的地方使用锁...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.