线程

Java – 没有GUI的倒数计时器

基本上我正在制作一个基于文本的“游戏”.但是,作为其中的一部分,我希望有一个计时器.它会减少我希望从变量到0的时间.现在,我已经看到了一些使用gui执行此操作的方法,但是,有没有一种方法可以在没有gui/jframe等的情况下执行此操作.所以,我想知道的是.你可以在不使用gui/jframe的情况下从x到0进行倒计时.如果是这样,你会怎么做?

关于Java多线程的一个问题

假设以下课程假设有两个线程访问相同的TestObject类实例,让我们称它们为t1和t2.我想知道在以下场景中会发生什么.>当t1处于访问method1()的中途时.现在t2正在尝试访问method2().>当t1处于访问method2()的中途时.现在t2正在尝试访问method1().我的理解是,对于第一个问题,线程t2将不被授予权限,因为对象将被t1锁定.对于第二个问题,线程t2将被授予访问权并锁定对象并将t1从执行中停止.但我的假设是错误的.有谁能解释一下?

java – 实现线程安全共享计数器的功能方法

我对Scala和函数式编程比较陌生,我喜欢使用不可变对象的想法,我可以避免许多线程安全陷阱.有一件事仍然困扰着我,这是用于教授线程安全的经典示例–共享计数器.我想知道是否可以实现线程安全计数器,使用不可变对象和功能概念,并完全避免同步.所以在这里参考首先是计数器的经典可变版本可变,非线程安全版本:可变,经典的线程安全版本:(或者我希望…

java – 紧密循环坏了吗?

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

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

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

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

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

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

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

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

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

多线程 – 上下文切换中保存的内容?

在两个线程之间的上下文切换中精确保存和恢复的内容>在同一个过程中>两个进程之间解决方法这是一个相当复杂的问题,因为答案取决于许多事情:>有问题的cpu>即使在同一个系列中也可能有很大差异,例如为SSE/MMX操作添加的附加寄存器.>操作系统,因为它控制在上下文切换中触发的处理程序,并决定是否使用cpu的硬件(如果有)来辅助上下文切换.>例如Windows不使用可以为您做大量上下文切换存储的Inte