multithreading 相关问题

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

如何处理blazor中定时器的异常?

如何正确处理 Blazor 服务器端另一个线程(来自计时器)中引发的异常? 理想情况下,我希望错误像所有其他异常一样冒泡并触发黄色错误栏。

回答 1 投票 0

如何将此 foreach 代码转换为 Parallel.ForEach?

我对 Parallel.ForEach 有点困惑。 什么是 Parallel.ForEach 以及它到底有什么作用? 请不要引用任何 MSDN 链接。 这是一个简单的例子: 字符串[]行=文件。

回答 6 投票 0

.NET Parallel.ForEach,StreamWriter 输出 + 线程安全

过去,我使用 ThreadPool.QueueUserWorkItem 从管理器类中生成多个线程。该管理器类订阅这些生成的线程中的事件,该事件在线程

回答 2 投票 0

C++11:std::线程池?

在 C++03 中,我使用了带有自建线程池的 pthread,该线程池始终保持几个线程运行(因为 pthread_create 很慢),这样我就能够为小任务启动线程,而无需薄...

回答 4 投票 0

.Net 4.0 中的并行功能

我一直在研究 .Net 4.0 中一些新的并行功能的实用性。 假设我有这样的代码: foreach(myEnumerable 中的 var 项目) myDatabase.Insert(item.ConvertToDatabase(...

回答 5 投票 0

PLINQ 延迟执行

我试图了解在延迟执行的情况下并行性如何使用 PLINQ 工作。这是一个简单的例子。 string[]words = { "相信", "收据", "救济", "田野" }; 布尔结果 = 单词。

回答 1 投票 0

为什么 python httpd 无法在 python docker 容器内启动线程?

我正在尝试运行网络服务器来检查系统在负载下的行为。 在寻找替代方案时,我想尝试一下 Python 的网络服务器: 如果我运行以下命令,它会按预期工作: $ sh -c '...

回答 1 投票 0

为什么 python httpd 无法在 python docker 容器内启动线程?

我正在尝试运行网络服务器来检查系统在负载下的行为。 在寻找替代方案时,我想尝试一下 Python 的网络服务器: 如果我运行以下命令,它会按预期工作: $ sh -c '...

回答 1 投票 0

TParallel 中的线程索引。当使用 TThreadPool 时

受 CUDA 的启发,我想在 TParallel.For 中使用时识别 TThreadPool 的每个线程的索引。 考虑以下非编译代码: 变量 v:整数数组; 阿池:

回答 1 投票 0

与多线程相比,什么时候应该使用 select?

我刚刚开始学习为 Linux 服务器编写代码。 在用多线程编写了一个简单的服务器之后,我不知道什么时候应该使用 select。 我的多线程服务器非常简单: 而(真)...

回答 1 投票 0

如何检测任何通信通道上可用的数据?

动机: 我正在编写一个处理所有可能的通信渠道的应用程序 以统一的方式,即通过终端、串行接口输入/输出, 图形用户界面 (xcb | win32)、Web

回答 1 投票 0

在 select 上设置 max fd 有多重要?

在无限循环中,我正在使用 select 监听 100 多个文件描述符。如果 fd 有一些数据包可供读取,我会通知分配给该文件描述符的数据包处理器线程,但我不会...

回答 2 投票 0

取消连接是boost::asio

来自标准 SSL 客户端示例。假设我调用这个函数。 boost :: asio :: async_connect(socket_.lowest_layer(),endpoint_iterator, 升压::绑定(&SSLClient::

回答 1 投票 0

蓝牙:程序卡在 connect() 方法上

我正在编写一个简单的蓝牙客户端,通过 RFCOMM 作为串行端口发送和接收短信。我查看了 Android SDK 教程并以相同的方式完成了它:一个 Activity ...

回答 1 投票 0

以下对象是否处于空闲状态?

这是完整的问题: 以下属性是否相当于说对象 x 是 免等待? 对于 x 的每个无限历史 H,每个需要无限数量的线程 H

回答 1 投票 0

POSIX 标准和信号量语义

我正在尝试理解信号量的语义。 这是一些代码: #包括 #包括 #包括 #包括 #包括 我正在尝试理解信号量的语义。 这是一些代码: #include <semaphore.h> #include <stdio.h> #include <stdlib.h> #include <pthread.h> #include <unistd.h> sem_t sem; void *helper(void *arg) { sem_wait(&sem); printf("helper woke up\n"); } int main() { sem_init(&sem, 0, 0); pthread_t tid; pthread_create(&tid, NULL, helper, NULL); sleep(1); sem_post(&sem); sem_wait(&sem); printf("main woke up\n"); exit(0); } 这里 main 创建一个辅助线程,休眠一秒钟以(几乎)确定辅助线程已运行并等待信号量,然后尝试快速连续地发布并等待信号量。根据 POSIX (https://pubs.opengroup.org/onlinepubs/009695399/functions/sem_post.html): 如果此操作产生的信号量值为零,则应允许阻塞等待信号量的线程之一从其对 sem_wait() 的调用中成功返回。 所以,我希望打印“助手醒来”。但是,如果您实际上在 Linux 上运行此代码,通常会观察到“main 唤醒”,这意味着默认情况下 Linux 上的信号量是允许不公平的。 我的问题是:为什么允许这种行为?是的,你可以说“它更容易实现”,但这并不能解释为什么信号量是用这些特定的语义设计的。 在其他地方,(https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Semaphore.html)它表示这种行为在某些情况下更可取。在什么情况下非公平信号量更好?我将不胜感激有关此主题的任何详细资料。 这样做的一个更好的方法是它减少了上下文切换。允许调用 sem_post() 的线程继续运行,而不必恢复在 sem_wait() 中阻塞的线程。 当调度程序决定解除哪个线程的阻塞时,主线程已调用 sem_wait()。然后它选择要解除封锁的服务员。然后,它可以根据调度优先级(如引用段落的其余部分所述)或任意选择。并且它可能会选择主线程以避免上下文切换。

回答 1 投票 0

Dataprovider+TestNG - 线程“surefire-forkedjvm-command-thread”中出现异常 java.lang.OutOfMemoryError:Java 堆空间

我有一个基于 testng 和 dataprovider 的测试自动化框架。我在 jenkins job 的帮助下在服务器上运行我的代码。该作业使用 maven 命令行执行测试用例。这个工作是taki...

回答 1 投票 0

Java 的 SHA-256 等哈希算法的哪些实现是线程安全的?

我需要在 Java 应用程序中计算 SHA-256 哈希值。 Apache HmacUtils 似乎适合于此。然而,在文档中它说“这个类是不可变的和线程安全的。但是......

回答 1 投票 0

Rust 将线程池引用传递到线程池作业中

我正在尝试将作业添加到线程池,该线程池也必须能够将作业添加到该线程池。 我是 Rust 新手。 我试图使用它来将函数作为作业传递给线程池。 T...

回答 1 投票 0

是否可以在 C# 中的后台工作程序中调用将 this.Handle 作为参数的方法

我正在使用 C# 开发一个独立的 WinForm 程序,该程序使用 Solidworks EPDM api。该程序采用顶级程序集并查找程序集中的所有引用和引用文件。 e....

回答 2 投票 0

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