首页 > TAG信息列表 > java-threads

java-两个短命线程与Executor

在应用程序启动时,只有两个短期任务需要在后台运行.为每个任务或一个执行程序使用一个线程是否有意义,例如,一个线程执行程序来提交这两个任务. 创建两个快速死亡的线程是否有意义,而不是让单个线程的执行程序在应用程序的整个生命周期中都等待任务,而没有一个线程呢?解决方法:使用

java-清理使用ExecutorService提交的线程

我的代码如下: public Future<String> getFuture() { ExecutorService executorService = Executors.newSingleThreadExecutor(); Future<String> future = executorService.submit(() -> { //do something return "test string"; }); ex

使用Java在循环内并行执行方法

我有下面的代码.在一个循环中,它正在执行方法“ process”.它按顺序运行.我想并行运行此方法,但是应该在循环内完成它,以便可以在下一行中求和.即即使它并行运行,所有功能也应在第二个for循环执行之前完成. 如何在Jdk1.7而非JDK1.8版本中解决此问题? public static void main(Strin

Java并发与原子类

据我所知,当尝试从多个线程执行同一操作时,对Java并发API的Atomic类的操作是一个接一个地执行的,以下程序的输出对我而言似乎不一致. public class VisitorCounterAtomic { private AtomicInteger visitorCount = new AtomicInteger(0); public void visitAndPrint() {

java-notify方法如何工作

按照javadoc的通知,唤醒正在该对象的监视器上等待的单个线程.如果有任何线程在此对象上等待,则选择其中一个唤醒.选择是任意的,并且可以根据实现情况进行选择.线程通过调用其中一个wait方法在对象的监视器上等待. 我想知道如何通过通知实现此行为.我在许多站点上都读到它发出信号,

将@Context UriInfo解析为Java线程

我正在尝试将@Context UriInfo解析为另一个线程并执行一些任务.但是当我尝试运行它时,它给出了如下错误 Exception in thread "Thread-691" org.jboss.resteasy.spi.LoggableFailure: Unable to find contextual data of type: javax.ws.rs.core.UriInfo 我的代码如下 @GET @Pat

从线程Java / Android返回值

我的android类中有以下线程.我如何从线程中获取err的值??? public int method(){ new Thread(new Runnable() { int err; @Override public void run() { err = device.verify(30, 5, coderChoice, detectModeChoice, 0,

DestroyJavaVM线程始终在运行

在分析我的应用程序时,我遇到了一个奇怪的行为 – DestroyJavaVM线程始终在运行 – 100%的时间. 在对该主题进行了一些研究之后,在网上几乎没有任何有价值的信息,我所理解的是这个线程应该是unload the JVM upon exit. 如果是这种情况,为什么这个线程从我开始申请的第一个时刻起1

java – 为什么Thread.sleep使用不好

对这个重复的问题道歉,但我还没有找到任何令人满意的答案.大多数问题都有自己的特定用例: Java – alternative to thread.sleepIs there any better or alternative way to skip/avoid using Thread.sleep(1000) in Java? 我的问题是非常通用的用例.等待条件完成.做一些操作.检查条

java – wait()和sleep()之间的区别

Threads中wait()和sleep()有什么区别? 我的理解是wait() – Thread仍处于运行模式并使用CPU周期但是sleep() – ing不会消耗任何CPU周期吗? 为什么我们同时拥有wait()和sleep():它们的实现如何在较低级别变化?解决方法:一个wait可以被正在等待的另一个调用notify的线程“唤醒”,而sle

java – 如何将CompletableFuture.supplyAsync与PriorityBlockingQueue一起使用?

我正在尝试通过CompletableFuture.supplyAsync将优先级队列添加到使用ThreadPoolExecutor和LinkedBlockingQueue的现有应用程序.问题是我无法想出一个设计来分配任务优先级,然后我可以在PriorityBlockingQueue的Comparator中访问.这是因为我的任务被CompletableFuture包装到一个名

java – multiThreading加入和等待之间的区别,通知

我没有在多线程中工作,join和wait之间的区别是什么,notify方法?区别仅限于获取锁定并禁止其他线程访问它或是否有其他用例? 当join可以用于完成线程执行时,我为什么要进行等待并在多线程中通知? 如果提供了任何实时示例,将会很有帮助解决方法:方法join(类Thread)等待线程死: Waits fo

如何在线程中处理RuntimeException

我不确定在线程中处理RuntimeException的最佳方法是什么. 假设我有一个线程A,它使用第三方函数b()将数据发送到服务器S.现在b()可以抛出一些RuntimeException并且无法将数据推送到指定的服务器.在这种情况下,我必须运行一个方法c(),它将数据推送到本地数据库.现在方法c()如果无法写

JavaFX – 如何在退出应用程序之前关闭所有正在运行的线程?

我用JavaFX创建了一个客户端/服务器聊天应用程序.当按下“Start Server”按钮时,我的ServerController会创建一个服务器对象,该按钮在一个单独的线程上运行. 这是我的问题: 每当我用默认的’x’-Button关闭Window时,Server-Thread就会终止,但不会通知活动客户端服务器终止.我需要通

java – 如何在一段时间后继续使用for循环而不使用`try … catch`方法?

new Thread(new Runnable() { @Override public void run() { List<Socket> socketList = new ArrayList<>(); for (String ip: iplist) { Socket socket = null; try { socket = new Socket(ip

在Java servlet中杀死请求太久的请求

我有一个简单的Java Servlet应用程序在运行.它有几个端点.尽管服务速度非常快,但我收到的一些请求有时会比预期花费更多时间.什么是杀死任何超过约20秒的处理请求的最佳方法?解决方法:如果要中断请求处理线程并且使用Tomcat,可以尝试Stuck Thread Detection Valve: interruptThread

Java runOnUiThread和Thread.sleep

我从一个单独的类中有这个方法,当调用结束时,我的ImageView的颜色从红色变为白色.示例代码如下: public void endOfCall(){ ((Activity)mContext).runOnUiThread(new Runnable(){ @Override public void run(){ TargetDetails.oncall.setVisibili

使用join()的Java多线程程序在计算相邻数字的总和时给出了错误的结果

我写了这个简单的多线程程序来添加1到100,000的数字.当我运行它时,我得到不同的值作为最终结果(值小于预期5000050000).当我仅使用一个线程执行程序时,它给出了正确的结果.程序也适用于较小的值,例如100.可能出错的是什么?提前致谢. class Calculation { private long total=0;