问题标签 [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.
java - 当我轮询数据时,图形 GUI 冻结并且不加载
我正在创建一个实时图形应用程序,使用我偶然发现的一个名为“LiveGraph”的库。从本质上讲,LiveGraph 应用程序是一个 GUI,它不断地从包含数据的文本文件中读取数据,并更新相应的图形。
这是我拥有的代码片段(解释如下:
第一个 for 循环本质上是遍历图表列表并为每个图表加载 GUI。之后的 while 循环本质上是通过网络永远轮询数据。
现在是这样的场景:当我只显示图表时(即,如果我注释掉 while 循环),图表会显示并打开(但显然不显示任何内容,因为没有任何轮询)。但是,使用如下所示的所有代码,图形的 GUI 窗口打开,但完全是灰色的,没有内容。如果我尝试以任何方式调整它们的大小或与它们交互,应用程序就会冻结,我必须强制退出。
我将其范围缩小到线程在某种程度上是一个问题的问题。while-loop 将永远运行,并且可能 GUI 将因此无法正常运行。我正在寻找解决方案,可能涉及线程。我尝试了一些基本的事情,例如运行显示并将每个作为单独的线程轮询,但我无处可去。
android - 如何在不崩溃的情况下中断线程 onBackPressed?
我尝试覆盖 onBackPressed 以不仅完成当前活动,而且在我调用下一个活动的意图时中断线程。当我之前按下时,启动活动完成,但线程继续运行并将意图调用到下一个活动。现在我已经在BackPressed 上包含了线程中断,当我按下返回时应用程序崩溃了。我究竟做错了什么?
更新:(这个解决方案对我有用)。
java - SWT - asyncExec 将输出定向到列表小部件
我正在尝试使用 Display.asyncExec() 方法在生成时将状态更新打印到 SWT 列表小部件,而不是在程序完成时将更新转储到列表中。我不断收到 java.lang.NullPointerException。我无法弄清楚我做错了什么。该程序运行良好,直到我尝试使用单独的线程并使用 Display.asyncExec 方法。任何建议表示赞赏。
错误:“异常:从线程“Thread-0”中的 UncaughtExceptionHandler 抛出的 java.lang.NullPointerException
我的 CustomOutputStream 类:
在我的 DVS 课程中:
在我的主要课程中:
android - IllegalThreadStateException:线程已经在新线程上启动
我正在使用 HockeyApp 来捕获内部测试人员的崩溃问题,并且带有此跟踪的单个崩溃报告进来了:
在查看 SO 之后,问题似乎是线程完成后代码正在调用 onStart() 。但是,我的服务中唯一调用 onStart() 的代码如下。请注意,它是在创建新线程后启动的。这种情况只发生过一次,所以我不确定是否有任何重现步骤,但我很好奇是否有其他人知道可能导致这种情况的原因。
第 256-260 行(在第 258 行崩溃)
java - AsyncTaks 的受控执行
我有一个创建多个 AsyncTasks 的 for 循环。大量data
存在的数组和 for 循环处理每个数据并使用该数据调用执行程序。AsyncTask 对该数据进行了一些密集处理,并且此代码对于小型数据集非常有效,即数据数组足够小,不会创建太多线程。
然而,碰巧数据量很大,因此在生产环境中运行,即在实际的 Android 设备上运行,应用程序由于线程过多而导致 RejectedExecutionException 崩溃。此外,还有一个 UI 表单,用户可以通过该表单提供数据并手动调用相同的 SomeAsyncDataTaskAsyncTask
类。
我正在寻找一种解决方案,通过该解决方案我可以通过限制一次运行 5 个 AsyncTask 来控制此执行,并且必须将任何其他任务排队。此外,当用户发送任务时,如果队列有任何未运行的排队任务,我更愿意将此用户任务放在顶部,以便当正在运行的任务完成时,此任务有机会运行而其他任务仅出现之后。谷歌搜索显示了一些结果;就像有一个叫做 PriorityBlockingQueue 的东西,但是看着代码让我很困惑。这是一个解决方案吗?如果是这样,如何在这种情况下使用它(对于上面的代码)。请提出解决方案-谢谢!
java - OCJP 转储线程同步方法
嗨,我正在处理 SCJP 转储,但现在我遇到了问题。这是问题:
哪个论述是对的?
A. 这段代码可以抛出一个 InterruptedException
B. 这段代码可以抛出一个非法的MonitorStateException
C. 这段代码可以在十分钟后抛出 TimeoutException
D. 颠倒 obj.wait() 和 obj.notify() 的顺序可能会导致该方法正常完成
E. 从另一个线程调用 notify() 或 notifyAll() 可能会导致该方法正常完成
F. 除非将“obj.wait()”替换为“((Thread) obj).wait()”,否则此代码不会编译
我发现在一个转储文件中答案是 A,而在另一个转储文件中答案是 B。任何人都可以得到正确答案并为我提供解释吗?
java - OCJP 转储线程
谁能帮我解决以下问题?
A. 4
B. 5
C. 8
D. 9
E. 编译失败
F. 运行时抛出异常
G. 无法确定
在转储中,答案是 D。我知道在 new Starter().makeItSo 中创建了一个新线程。但是谁能告诉我为什么 run() 中的 x*=2 在方法 makeItSo 中的 x=x-1 和 System.out.println(x) 之间执行?
java - 简单的 Ping Pong Java 线程
我正在尝试制作 2 个线程,一个 Ping 和一个 Pong。这个想法是 Ping 应该总是首先执行。我正在使用同步方法。我不确定我的代码有什么问题。在我看来它应该可以工作。我已经阅读了很多文档。因此,如果您有任何您认为会有所帮助的内容,我将很乐意阅读。我确定这很简单。任何帮助表示赞赏
每个结果都是不同的,但奇怪的是我得到了重复。
java - 转换为 ExecutorService
我有一个消费者/生产者计划,其中:
- 要处理的项目(字符串)进入 BlockingQueue
- 我从该 BlockingQueue 实例化执行 take() 的固定数量的线程,然后处理这些字符串。
处理线程是此类的实例:
转换为 Executor 将非常简单:字符串将与 Runnable 一起直接进入 Executor:
接着:
但是......每次我实例化一个任务时,它都会实例化一个非常大的代码块(处理器)——我不能这样,内存要求会很高。
我该怎么做呢?
java - 如何用两个按钮杀死和启动线程
开始按钮...
停止按钮...
/li>这是我在同一活动中的主题。
/li>
所以我要做的是。我想画一些用开始按钮开始的折线图,然后用停止按钮停止和清除。并使用开始按钮再次绘制新图形。但是每次我尝试重新启动时,应用程序都会因错误而关闭..
“话题已经开始了……”
所以我认为我需要通过单击停止按钮来终止或停止线程..我已经尝试了几种方法......推荐......在这里,我还无法解决。
请帮帮我..
(+而且我在这里很新,,,而且,,,我的英语不完美..这也是我的第一个问题..抱歉有任何错误。谢谢)