
Java线程等待值
我有以下情况:Java线程等待值为了运行一个算法,我必须运行多个线程和每个线程都设置一个实例变量x,它死前。问题是这些线程不会立即返回:public Foo myAlgorithm() { //create n Runnables (n is big) //start these runnables (may take long time do die) //i need the x value of each runnable here, but they havent finis...
2024-01-10
Java从线程返回值
我有一个方法HandlerThread。值在内部被更改Thread,我想将其返回给该test()方法。有没有办法做到这一点?public void test(){ Thread uiThread = new HandlerThread("UIHandler"){ public synchronized void run(){ int value; value = 2; //To be returned to test() ...
2024-01-10
Java如何创建主线程
我是Java技术的新手。我知道Thread在Java中只有两种创建方式扩展线程类实施可运行接口因此,这只是两种创建方法Thread。但是,当我们使用主JVM启动程序时,它启动了一个mainThread。我认为甚至JVM也必须遵循创建主要Thread方法的规则,以创建主线程JVM必须扩展Thread类或实现Runnable。public class MainThreadEx...
2024-01-10
解锁另一个线程java拥有的锁
我有一个LockManager来管理多个线程的锁。有时线程是坏男孩,我必须杀死它们并要求LockManager释放所有锁。但是,由于我无法在Java中使用ReentrantLock,因此无法解锁另一个线程拥有的锁。我被迫使用锁(不能使用信号灯,这是作业的重点)。是否有任何Java Lock实现可让我解锁其他线程拥有的锁?到目前...
2024-01-10
Java-创建一个新线程
我是线程新手。我想创建一些与主线程分开工作的简单函数。但这似乎不起作用。我只想创建一个新线程,并在那里独立于主线程发生的事情做一些事情。这段代码看起来很怪异,但到目前为止,我对线程的了解还很少。你能解释一下这是怎么回事吗? public static void main(String args[]){ test z=new test();...
2024-01-10
Java事件调度线程说明
我最近开始学习和探索Java中GUI编程的基础知识。经过一段时间的编程,我只完成了后端工作或其他工作,因此,我最接近用户界面的是命令控制台(令人尴尬的是,我知道)。我正在使用Swing,据我所知,通过扩展,我也正在使用AWT。我的问题基于以下代码:java.awt.EventQueue.invokeLater(new Runnable() { p...
2024-01-10
Java 如何使线程超时
想在一个固定的时间内运行一个线程。如果未在该时间内完成,我想杀死它,抛出一些异常或以某种方式处理它。怎么做到呢?我从该线程 了解到的一种方法是在该线程的run()方法内使用TimerTask。有没有更好的解决方案呢?编辑:添加赏金,因为我需要一个更明确的答案。下面给出的ExecutorService代...
2024-01-10
Java中静态块的线程安全
假设我有一些Java代码:public class SomeClass { static { private final double PI = 3.14; private final double SOME_CONSTANT = 5.76; private final double SOME_OTHER_CONSTANT = 756.33; } //rest of class}如果一个线程正在初始化SomeClass的Class对象,并且在第二个线程...
2024-01-10
如何在Java中杀死线程?
如何java.lang.Thread用Java 杀死A ?回答:有关他们为何不赞成使用Sun的内容,Thread.stop()请参见此主题。它详细介绍了为什么这是一种不好的方法,以及通常应该采取什么措施才能安全地停止线程。他们建议的方式是使用共享变量作为标志,要求后台线程停止。然后可以由另一个请求线程终止的对象来设...
2024-01-10
如何杀死Java中的线程?
如何杀死Java中的线程?回答:一般不建议使用 Thread.stop() 可以使用共享变量作为标志,要求后台线程停止。然后可以由另一个请求线程终止的对象来设置此变量。...
2024-01-10
Java 具有键绑定的线程
我是Java图形和线程的新手,我正在尝试制作一个游戏(特别是Pong)。这个想法是两个人可以在同一个键盘上玩(即,有两个通过不同键控制的拨盘)。目前,两个玩家都无法同时移动其球拍。有针对这个的解决方法吗?单独的线程是答案吗?如果可能的话,我希望这些拨片能够同时(至少在表面上)...
2024-01-10
javafx,从另一个线程更新ui
我有一个javafx应用程序和一个工作线程,通过javafx.concurrent.Task来实现,它执行一个漫长的过程,即压缩并上传一组文件。我已通过将任务进度连接到进度条progressProperty。 用这些信息更新UI不能从工作线程中完成,最多我可以将其添加到同步集合中。但是然后我需要一些事件来通知UI新数据可用。javaf...
2024-01-10
Java线程完成后是否被删除
假设我使用下面的方法每隔几秒钟生成一个线程,并且每个线程大约需要一秒钟才能完成。完成的线程会被删除吗?new Thread (new myRunnableClass()).start();回答:线程完成后立即释放本机OS级线程(完成时大约释放run()),但是线程对象像其他任何对象一样存活,直到无法访问并且垃圾回收器感觉像在运行...
2024-01-10
Java如何从线程中捕获异常
我有Java主类,在该类中,我启动了一个新线程,在主类中,它等待线程死亡。在某个时刻,我从线程中抛出了运行时异常,但是我无法在主类中捕获从线程中抛出的异常。这是代码:public class Test extends Thread{ public static void main(String[] args) throws InterruptedException { Test t = new Test(); try { t.s...
2024-01-10
如何优雅地停止Java线程?
我写了一个线程,它花费太多时间执行,而且似乎还没有完全完成。我想优雅地停止线程。有什么帮助吗?回答:做到这一点的好方法是让run()一个线程保护一个Thread的boolean变量,并true在你要停止它的时候将其设置为外部变量,例如:`class MyThread extends Thread{ volatile boolean finished = false;public void stopM...
2024-01-10
Java绿色线程与非绿色线程
我想了解这类线程提供的优势。在哪些环境中,绿色线程比非绿色线程更好?有人说绿色线程更适合多核处理器。任何预期的行为问题。回答:绿色线程是“用户级线程”。它们是由“普通”用户级进程而不是内核调度的。因此,它们可用于在不提供该功能的平台上模拟多线程。特别是在Java上下...
2024-01-10
如何优雅地停止java进程?
如何在Linux和Windows中优雅地停止Java进程?如何优雅地停止java进程?Runtime.getRuntime().addShutdownHook何时被调用,什么时候不调用?终结者怎么样,他们在这里帮助吗?我可以从shell发送某种信号给Java进程吗?我在寻找最好的便携式解决方案。回答:关闭挂钩在虚拟机未被强行杀死的所有情况下执行。...
2024-01-10
如何将参数传递给Java线程?
谁能建议我如何将参数传递给线程?另外,它如何用于匿名类?回答:你需要将构造函数中的参数传递给Runnable对象:public class MyRunnable implements Runnable { public MyRunnable(Object parameter) { // store parameter for later user } public void run() { }}然后调用它:Runnable r = new MyRunnable(param_val...
2024-01-10
如何实现真正的异步Java线程
我有一个需要执行两项操作的功能,一项功能完成得很快,而一项则需要很长时间才能运行。我希望能够将长时间运行的操作委派给线程,并且我不在乎线程何时完成,但是线程需要完成。我实现了如下所示的方法,但是由于函数在start()调用后退出,因此我的第二个操作从未完成。如何确保函数返...
2024-01-10
Java中的线程安全循环缓冲区
考虑几个并行运行的Web服务器实例。每个服务器都有对单个共享“状态保持器”的引用,该角色的作用是保留N来自所有服务器的最新请求。例如(N=3):Server a: "Request id = ABCD" Status keeper=["ABCD"]Server b: "Request id = XYZZ" Status keeper=["ABCD", "XYZZ"] Server c: "Request id = 1234" Status keeper=["ABCD...
2024-01-10
如何正确停止Java中的线程?
我需要一个解决方案来正确停止Java中的线程。我有IndexProcessor实现Runnable接口的类:public class IndexProcessor implements Runnable { private static final Logger LOGGER = LoggerFactory.getLogger(IndexProcessor.class); @Override public void run() { boolean run = true; ...
2024-01-10
Java 如何同时启动两个线程
程应在同一瞬间开始。我了解,如果你这样做thread1.start(),则下次执行之前需要花费几毫秒的时间thread2.start()。可能还是不可能?线程应该在同一瞬间开始。我知道,如果你执行thread1.start(),则下次执行thread2.start()需要几毫秒。这是可能的还是不可能的?回答:要完全同时(至少尽可能好)启...
2024-01-10
Java线程之间共享静态变量吗?
我的高级Java课堂上有关线程的老师说了一些我不确定的东西。以下代码不一定会更新ready变量。根据他的说法,这两个线程不一定共享静态变量,特别是在每个线程(主线程与ReaderThread)在其自己的处理器上运行并且因此不共享相同的寄存器/缓存/等和一个CPU的情况下。不会更新其他。从本质上讲,他...
2024-01-10
如何找出谁在Java中创建线程?
在tomcat中,如果webapp确实停止了none守护进程线程,则无法通过shutdown.sh关闭tomcat例如:public class demo implements ServletContextListener{ public void contextDestroyed(ServletContextEvent arg0) { // TODO Auto-generated method stub // yes,we can cancel timer in here,but this ...
2024-01-10
等到所有线程在Java中完成工作
我正在编写一个具有5个线程的应用程序,这些线程可以同时从Web获取一些信息,并在缓冲区类中填充5个不同的字段。当所有线程完成其工作时,我需要验证缓冲区数据并将其存储在数据库中。我该怎么做(当所有线程完成工作时收到警报)?回答:我采用的方法是使用ExecutorService管理线程池。Execut...
2024-01-10
