问题标签 [multithreading]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
258 浏览

vb.net - UI 线程安全

关于在更改表单控件的属性时确保线程安全的最佳方式的任何建议?我一直在使用我。过去调用,我想知道您是否有优点/缺点、评论、建议等。

0 投票
3 回答
1806 浏览

winforms - BufferedGraphicsContext 错误

经过几个小时的应用程序使用后,我每天都在同一时间收到以下错误和调用堆栈。任何人都可以对正在发生的事情有所了解吗?

0 投票
7 回答
22904 浏览

asp.net - ASP.NET 中的 BackgroundWorker 线程

是否可以在ASP.NET 2.0 中使用 BackGroundWorker 线程用于以下场景,使浏览器端的用户不必等待很长时间?

设想

  1. 浏览器请求一个页面,比如 SendEmails.aspx
  2. SendEmails.aspx 页面创建一个 BackgroundWorker 线程,并为该线程提供足够的上下文来创建和发送电子邮件。
  3. 浏览器收到来自 ComposeAndSendEmails.aspx 的响应,表示正在发送电子邮件。
  4. 同时,后台线程正在进行创建和发送电子邮件的过程,这可能需要相当长的时间才能完成。

我主要关心的是保持 BackgroundWorker 线程运行,尝试发送 50 封电子邮件,而 ASP.NET workerprocess 线程池线程早已不复存在。

0 投票
3 回答
10172 浏览

linux - 测量 Linux 多线程应用程序的堆栈使用情况

我正在为 Linux 嵌入式平台开发一个多线程应用程序。

目前,我将每个线程的堆栈大小(通过 pthread_set_attr)设置为一个相当大的默认值。我想将每个线程的值微调为更小的值,以减少我的应用程序的内存使用量。我可以通过反复试验将每个线程的堆栈大小设置为逐渐减小的值,直到程序崩溃,但是应用程序使用约 15 个线程,每个线程具有完全不同的功能/属性,因此这种方法非常耗时。

我更喜欢能够直接测量每个线程的堆栈使用情况。是否有一些实用人员可以推荐这样做?(例如,我来自 vxWorks 背景,使用 vxWorks shell 中的 'ti' 命令直接提供堆栈使用情况的统计信息以及有关任务状态的其他有用信息。)

谢谢

0 投票
10 回答
35094 浏览

c# - C#中的lock关键字

我从 MSDN 了解 lock 关键字的主要功能

lock 语句(C# 参考)

lock 关键字通过获取给定对象的互斥锁、执行语句然后释放锁来将语句块标记为临界区。

什么时候应该使用锁?

例如,它对多线程应用程序很有意义,因为它可以保护数据。但是当应用程序不分离任何其他线程时是否有必要?

使用锁是否存在性能问题?

我刚刚继承了一个在任何地方都使用锁的应用程序,它是单线程的,我想知道我应该把它们留在里面,它们甚至是必要的吗?

请注意,这更像是一个常识性问题,应用程序速度很好,我想知道这是否是将来要遵循的良好设计模式,或者除非绝对需要,否则应该避免这种情况。

0 投票
7 回答
21871 浏览

java - 如何从正在运行的 JBoss 实例生成和分析线程转储?

如何从正在运行的 JBoss 实例生成和分析线程转储?

0 投票
5 回答
464 浏览

multithreading - 线程还是异步?

你如何让你的应用程序多线程?你使用异步函数吗?还是你产生一个新线程?我认为异步函数已经产生了一个线程,所以如果你的工作只是做一些文件读取,那么懒惰并且只是在线程上产生你的工作只会“浪费”资源......那么使用线程时是否有某种设计或异步功能?

0 投票
5 回答
22454 浏览

.net - 如何在 .NET 中的线程上传播 tcplistener 传入连接?

使用 Net.Sockets.TcpListener 时,在单独的线程中处理传入连接 (.AcceptSocket) 的最佳方法是什么?

这个想法是在接受新的传入连接时启动一个新线程,而 tcplistener 然后保持可用于进一步的传入连接(并且为每个新传入连接创建一个新线程)。与发起连接的客户端的所有通信和终止都将在线程中处理。

VB.NET 代码的示例 C# 表示赞赏。

0 投票
1 回答
451 浏览

multithreading - 使用 asynchbeans 而不是原生 jdk 线程

使用 IBM 的 asynchbeans 是否有任何性能限制?我的应用 jvm 核心转储显示大量出现孤立线程。我目前使用本机 jdk 非托管线程。是否值得切换到托管线程?

0 投票
3 回答
2106 浏览

database - 使用 Firebird 识别线程中的死锁

开发人员正在寻找最佳方法来识别特定线程内特定事务的死锁。我们遇到了死锁错误,但这些在 FB 2.0 中非常普遍

发生死锁,它们导致客户端和数据库之间的数据库连接中断。

  • 我们将实时(每秒一次)数据发送到数据库。
  • 我们打开一个由大约 30 个线程组成的线程池,并使用它们来摄取数据(大约每秒 1-2 kB)。
  • 有时数据库只能占用这么多,以至于我们使用池中的下一个线程来尽可能保持流最新。

除了达到最大线程数和中断连接之外,有时这会产生死锁。

因此,我们真的需要就这是否是每秒摄取这么多数据的最佳方法提出意见。我们有多达 100 个这些客户端同时访问数据库。
平均每天的交易量约为 1.5 到 180 万笔。