相关疑难解决方法(0)

在线程中停止无限循环

    Thread d = new Thread(new Runnable() {
        @Override
        public void run() {
            while(true);
        }
    });
    d.start();
Run Code Online (Sandbox Code Playgroud)

如何在不更改方法内部的代码的情况下退出无限循环public void run(),并且不使用d.stop();(不推荐使用的方法).

PS:我更喜欢发布我需要做的整个练习细节.这有点像我需要吃的东西.他们给了我一个有时进入无限循环的函数,我无法改变那个方法.

java multithreading

2
推荐指数
2
解决办法
7850
查看次数

在为android编程时出现MultiThreading问题

我正在Android上开发,但问题可能在任何其他Java平台上都同样有效.

我开发了一个多线程应用程序.假设我有一个需要执行时间密集型任务的第一类,因此这项工作在另一个Thread中完成.完成后,相同的Thread会将时间密集型任务结果返回给另一个(第3个)类.

最后一个类将执行某些操作并将其结果返回到第一个启动类.我注意到虽然第一堂课将一直等待,也许是因为这是某种循环?

另外我想让Thread-class停止运行,就像它将结果传递给第三类时它应该停止一样.第三类必须在没有被"封装"在第二类(线程一)的情况下完成它的工作.谁知道怎么做到这一点?

现在的经验是,第一个似乎在等待(悬挂)直到第二个和第三个完成:(

multithreading android

1
推荐指数
1
解决办法
7076
查看次数

如果线程停止在Java中如此尴尬,Eclipse如何设法如此快地停止线程?

如果这个问题听起来很冒昧,我会提前道歉.我对此很新.所以这就是它...

我一直在研究"java线程停止"问题.我在stackoverflow上阅读了很多文章,他们中的大多数都得出结论,在java中线程停止非常尴尬.一些好方法包括:

  1. 使用join(这个答案有87个upvotes)并等到线程结束.
  2. 设置一个volatile标志以表示其他线程.这个答案得到了113个赞成票
  3. 很多人推荐Thread.interrupt()并稍后检查 isInterrupted
  4. 有些人建议使用像ExecutorService这样的高级API.但是该shutdownNow方法没有给出任何保证,并且依赖于该isInterrupted布尔值

但是上述两种方法都不允许立即停止线程.例如,如果程序正在运行某些程序SQL 并等待外部数据库响应,则上述所有方法都将"谦虚地等待",直到SQL完成为止.所以停止不是立竿见影的.只有SQL完成(可能需要数小时),程序才会检查isInterrupted或其他标志,然后停止

这是一个妙语... 我知道Eclipse是java根据这个 stackoverflow的答案编写的.每当我点击红色停止按钮时,Eclipse将立即停止我的应用程序.我认为它不使用,Thread.stop因为它已被弃用.但我无法使用stackoverflow上推荐的那些方法.Eclipse如何设法如此快速地停止线程?

java eclipse multithreading

1
推荐指数
1
解决办法
421
查看次数

如何在Android中停止线程和处理程序

老实说,我无法弄明白 - 我听说这thread.stop()不是一件好事.它也不适合我.如何让线程/处理程序停止运行?

android handler

0
推荐指数
1
解决办法
5895
查看次数

超时后如何取消任务?

我有一些Task执行可能挂起的 I/O 阻塞操作(从 中获取文件URL

task = new Task<List<WSDLOperation>>() {
            @Override
            protected List<WSDLOperation> call() {
                List<WSDLOperation> services = new ArrayList<>();
                try {
                    services = WSDLService.createService(wsdlURL).getOperations();
                } catch (Exception ex) {
                    LOG.log(Level.WARNING, "Can't reach {0}", wsdlURL);
                }
                return services;
            }
        };

    }
Run Code Online (Sandbox Code Playgroud)

该方法createService可以永远等待而不抛出任何Exception。(我使用Main 类中定义的全局 ( static public)执行任务)。ExecutorService

java concurrency javafx javafx-8

0
推荐指数
1
解决办法
6231
查看次数