问题标签 [java-threads]

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 投票
43 回答
733373 浏览

java - Java中的“实现可运行”与“扩展线程”

从我在 中使用线程的时间开始Java,我发现了以下两种编写线程的方法:

使用工具Runnable

或者,使用extends Thread

这两个代码块有什么显着差异吗?

0 投票
12 回答
237630 浏览

java - 如何在没有 IllegalMonitorStateException 的情况下在 Java 中使用等待和通知?

我有 2 个矩阵,我需要将它们相乘,然后打印每个单元格的结果。一旦一个单元格准备好,我就需要打印它,但是例如,即使 [2][0] 的结果首先准备好,我也需要在单元格 [2][0] 之前打印 [0][0] 单元格. 所以我需要按订单打印。所以我的想法是让打印机线程等到multiplyThread通知它正确的单元格已准备好打印,然后printerThread将打印单元格并返回等待等等..

所以我有这个做乘法的线程:

打印每个单元格结果的线程:

现在它向我抛出了这些异常:

第 49 行multiplyThread是“notify()”..我想我需要以不同的方式使用同步,但我不确定如何。

如果有人可以帮助此代码工作,我将非常感激。

0 投票
33 回答
949290 浏览

java - Difference between wait() and sleep()

What is the difference between a wait() and sleep() in Threads?

Is my understanding that a wait()-ing Thread is still in running mode and uses CPU cycles but a sleep()-ing does not consume any CPU cycles correct?

Why do we have both wait() and sleep(): how does their implementation vary at a lower level?

0 投票
6 回答
88027 浏览

android - 服务、异步任务和线程之间的区别?

服务、异步任务和线程之间有什么区别。如果我没记错的话,他们都习惯于在后台做一些事情。那么,如何决定使用哪个以及何时使用?

0 投票
3 回答
17223 浏览

java - 如何在 Java 应用程序中从 Main 方法运行线程?

我相信static main方法中使用的变量也应该如此static。问题是我根本无法使用this这种方法。如果我没记错的话,我必须用 commnad 启动线程myThread = new ThreaD(this)

以下代码会产生错误,因为我this在线程启动中使用了。我在这里做错了什么?

0 投票
4 回答
4772 浏览

java - 检测您是在应用程序中的主进程还是远程服务进程

我有一个应用程序,它有一个在单独的进程中运行的远程服务:

我也在使用一个应用程序类:

我可以做这样的事情吗?

我想我可以获取进程名称并使用它来检测我是否在远程服务或主应用程序中,但我还没有找到如何获取进程名称。我可以从中获取 PID android.os.Process.myPID(),但这对我没有多大帮助。

0 投票
1 回答
937 浏览

android - 当应用再次启动时,Android thread.join() 线程强制关闭

我的应用程序有问题。我有一个 SurfaceHolder 用于在画布上绘图。
在 surfaceCreated 方法下,我调用thread.start();
在 surfaceDestroyed 方法下,我调用thread.join();
我运行我的应用程序并按下 home 键,然后调用该surfaceDestroyed方法。

问题是当我随后尝试再次运行我的应用程序时,我得到一个线程已经启动的异常。为什么是这样?我什至正在测试线程是否已经在使用isAlive(). 我需要用 替换thread.join线thread.wait吗?
如果是这样,我怎样才能恢复线程而不是重新启动它surfaceCreated

0 投票
5 回答
2712 浏览

java - Thread类中的run方法

输出是:RunnableA ThreadB
我不明白它是怎么来的??(B类的run方法发生了什么)

0 投票
4 回答
1608 浏览

java - java线程是如何调度的?

我最近开始在 Linux 线程的情况下使用 Java 进行多线程编程,我知道内核会调度它们(因为它们是被调度的单元实体)但是 java 程序运行在我的系统(RHEL 6.1)中的 JVM 上是实现为作为用户空间实例运行的程序。那么,在内核不知道 java 线程的情况下,如何在 JVM 中完成抢占式多任务处理?如果给出做这件事时 JVM 和内核交互的整个机制将会很有帮助。

请引用可能的信息来源

0 投票
9 回答
45004 浏览

java - 在 Java 中将 ExecutorService 变成守护进程

我在 Java 1.6 中使用 ExecutoreService,只需通过

当我的主线程完成时(以及线程池处理的所有任务),这个池将阻止我的程序关闭,直到我明确调用

我可以通过某种方式将此池使用的内部线程管理转换为守护线程来避免调用它吗?或者我在这里错过了什么。