线程

java – 扩展Thread类并实现Runnable接口的场景

我是Java的线程编程的新手,因此是基本的问题.(我检查过,但是以前没有找到这个问题)我读到可以通过继承Thread类或通过实现Runnable接口创建线程.我看到一个同样的课程的代码.我想知道什么样的情况会想要这个,如果这有什么优势,那是什么.解决方法扩展Thread并实现Runnable是无用的(线程已经实现了Runnable).你几乎总是想实现Runnable(而不是扩展Thread).这使

测试 – 我应该如何模拟1000个并发用户?

我需要为Web服务进行负载测试.它至少需要1000个并发用户.我知道一些测试工具可以模拟一堆具有多线程的并发用户.但那些用户并不是真正的并发.如果我在只有2个cpu内核的机器中运行JMeter程序,那么一次只有2个并发用户处于活动状态,即使测试工具生成了1000多个线程.有没有办法创建真正的并发用户?

Java 7中的EDT之外的Swing repaint()方法是否仍然安全使用?

我知道,即使使用Swing的线程模型,它也曾经被认为是安全的从任何线程调用repaint()和其他一些方法,但是最近我在评论中被告知这不是这样.谷歌发现很多较老的讨论说这是安全的,但最近没有.所有曾经说过安全的官方参考文献似乎已经消失了,我在各种论坛上发现了几个人讨论如何不再安全.我找不到任何官方确认是否是或者不是–我真的很想看到一些解释变化的逻辑如果已经改变的东西.考虑到破坏现有应用程序的风险有

在Java规范中无法理解volatile的例子

看起来像矛盾.运行示例程序后,我的j比我大.为什么使用挥发性呢?它给出几乎相同的结果没有挥发性.为什么这个例子在这里作为同步的替代方法?

多线程 – 异步套接字服务器如何工作?

每个客户端套接字是否需要自己的线程来监听数据?数据如何路由到正确的客户端套接字?这是TCP/UDP/内核的内容吗?在这个线程环境中,什么样的数据通常被共享,有什么争论点?

java – 当标志在不同的线程中更改时,循环不结束

奇怪的是,如果我在while循环中插入’flag’变量的快速System.out.println回显,程序行为正确,但显然我不想在循环中打印任何东西.我猜这个问题可能是Java编译器试图优化空的while循环到停止实际检查’flag’变量的结果?有没有人有建议使这项工作正确,或者可能有一些更好的基于并发的方法使主线程暂停直到keypressed线程执行?解决方法您需要声明标志volatile,否则编译器可以优化您的代码并跳过标志的读取.

java – 紧密循环坏了吗?

程序中的紧密循环是不是很糟糕?我有一个应用程序有两个线程的游戏物理模拟器.updateGame线程和渲染线程.通过使线程休眠几毫秒来限制渲染线程,并且updateGame线程之前被10毫秒的睡眠限制.然而,我最近没有对updateGame线程进行了限制,并且我的对象运动的模拟似乎更加逼真,因为我已经取出了10ms的睡眠时间.热循环或紧密循环是不是很糟糕?

Java线程转储:BLOCKED线程没有“等待锁…”

我很难理解从jstack获取的线程转储,用于在Tomcat6上运行的SpringMVCWeb应用程序.我看到阻塞线程,这些线程自动阻塞,但是线程转储不告诉我为什么或正在等待哪个监视器.例:即我错过了堆栈跟踪中的“等待锁…”行.显然,线程锁定了一个Class对象,但我不明白为什么线程本身被阻止.线程转储不包含任何死锁提示.我可以做些什么来识别锁定监视器?描述了类似的情况,所以我相信这些线程被垃圾回收器简单地阻止.