multithreading相关内容

何时在多线程中使用 volatile?

如果有两个线程访问一个全局变量,那么许多教程都说使变量 volatile 以防止编译器将变量缓存在寄存器中,从而无法正确更新.然而,两个线程都访问一个共享变量是需要通过互斥锁进行保护的东西,不是吗?但是在这种情况下,在线程锁定和释放互斥锁之间,代码处于一个关键部分,只有一个线程可以访问变量,在这种情况下,变量不需要是易失的? 那么,多线程程序中 volatile 的用途/目的是什么? ..
发布时间:2022-01-30 16:01:39 C/C++开发

JPanel 上的活动绘图之上的 JTextFields,线程问题

有没有人尝试过使用 Swing 构建一个适当的多缓冲渲染环境在其之上可以添加 Swing 用户界面元素? 在这种情况下,我在背景上绘制了一个动画红色矩形.背景不需要每帧都更新,因此我将其渲染到 BufferedImage 上并仅重绘清除矩形先前位置所需的部分.请参阅下面的完整代码,这扩展了@trashgod 在上一个线程中给出的示例,这里. 到目前为止一切顺利;动画流畅,CPU占用率低 ..
发布时间:2022-01-30 09:26:25 Java开发

多线程中堆栈和调用堆栈之间的区别?

在阅读有关线程共享的所有内容的答案时,我偶然发现了“调用堆栈"一词.虽然我知道线程有自己的堆栈,它们不与其他线程共享,但我不明白什么调用堆栈将意味着相对于线程.我看过一些答案,但不是很清楚.请澄清调用堆栈的含义以及它与多任务上下文中的堆栈有何不同.问候 解决方案 请说明调用堆栈的含义以及它与堆栈的区别在多任务处理的情况下. 区别很微妙,但这是我理解它的方式.人们经常在某种程度上互 ..
发布时间:2022-01-25 12:59:44 其他开发

排序两个线程的执行

我想写两个线程,第一个从控制台读取一个字符串,第二个输出其中的字符数. 为此,我必须设置线程的执行顺序,先读,再写. 我还希望同时执行一个线程. 我该怎么做? #include #include #include 无效 *printCharacterNumber(无效 *ptr);无效 *readMessage(无效 ..
发布时间:2022-01-24 23:36:24 服务器开发

Java 内存错误:无法创建新的本机线程

运行 java 服务器时,我在 UNIX 服务器上收到此错误: 线程“Thread-0"java.lang.OutOfMemoryError 中的异常:无法创建新的本机线程在 java.lang.Thread.start0(本机方法)在 java.lang.Thread.start(Thread.java:640)在 [... 我在哪里启动一个新线程 ...] 每次运行大约 600 个线程时都 ..
发布时间:2022-01-24 23:16:02 Java开发

由于标准容器中元素的默认初始化导致性能下降

(是的,我知道有一个问题 几乎是同一个标题,但答案并不令人满意,见下文) 编辑对不起,原来的问题没有使用编译器优化.现在已修复此问题,但为了避免琐碎的优化并更接近我的实际用例,测试已分为两个编译单元. std::vector 的构造函数具有线性复杂性这一事实对于性能关键型应用程序来说是个麻烦事.考虑这个简单的代码 //编译单元1:void set_v0(type*x, size_ ..
发布时间:2022-01-24 20:26:01 C/C++开发

为核心数据写入创建后台线程

我正在尝试重新创建这篇 cocoanetics 文章中描述的三层核心数据系统 (http://www.cocoanetics.com/2012/07/multi-context-coredata/).我遇到的问题是在自己的后台线程上创建私有 MOC.我对多线程以及如何在目标 c 中完成它没有太多经验.我一直在阅读文章并试图掌握如何正确实施这种方法,但我最终承认我不知道自己在做什么. 要创建这 ..
发布时间:2022-01-24 18:37:17 移动开发

如何在 C# 中停止线程?

我创建了一个客户端-服务器应用程序,并且在服务器上我希望有机会停止服务器然后重新启动它.问题是我无法停止监听 Tcp 连接的线程. 如何在 C# 中关闭线程? 谢谢. private void KeepServer(){而(this.connected){tcpClient = tls.AcceptTcpClient();连接 newConnection = new Connecti ..
发布时间:2022-01-24 15:16:20 C#/.NET

如何将命令发送到单个客户端而不是所有客户端?

我正在用 Indy 10 编写一个简单的客户端/服务器聊天程序.我的服务器(idtcpserver)向客户端发送命令,客户端应答,但是当连接多个客户端并且服务器发送命令时,所有连接的客户端向服务器发送数据. 如何将命令发送到指定的客户端而不是全部? 解决方案 向所有连接的客户端发送命令的唯一方法是,如果您的代码循环通过所有向每个客户端发送命令的客户端.因此,只需删除该循环,或至少将其 ..
发布时间:2022-01-24 15:11:24 其他开发