草庐IT

runnables

全部标签

java - 实现 Runnable 与扩展 Thread

这个问题在这里已经有了答案:"implementsRunnable"vs"extendsThread"inJava(43个回答)关闭9年前。为什么实现Runnable比从Thread类扩展更好?

java - executorService.submit(Runnable) 返回的 future 对象是否包含对可运行对象的任何引用?

假设我们有以下代码:List>runningTasks;ExecutorServiceexecutor;...voidexecuteTask(Runnabletask){runningTasks.add(executor.submit(task));}我的问题是:runningTasks是否包含对task对象的引用?它能保持多长时间?任务完成后它还持有吗?为了避免内存泄漏,我是否必须小心删除添加到列表中的future? 最佳答案 直到执行者或Future对象持有对它的引用时是一个实现细节。因此,如果您的任务使用大量内存以至于您不得不

java - 为什么在实现 Runnable 时使用 Thread.currentThread().isInterrupted() 而不是 Thread.interrupted()?

在stackoverflow上,经常看到Thread.currentThread().isInterrupted()的使用。当实现Runnable并在while循环中使用它时,如下所示:publicvoidrun(){while(!Thread.currentThread().isInterrupted()){...}}使用Thread.interrupted()有什么区别吗(除了使用interrupted()时清除了interrupted标志)?我还看到了Thread.currentThread().interrupted()。这是使用它的正确方法,还是Thread.interrup

java - 扩展Thread类并实现Runnable接口(interface)的场景

这个问题在这里已经有了答案:"implementsRunnable"vs"extendsThread"inJava(43个回答)ThedifferencebetweentheRunnableandCallableinterfacesinJava(14个答案)subclassofthreadimplementingRunnableinterface(2个答案)关闭5年前。我是Java线程编程的新手,因此是这个基本问题的新手。(查了一下,没找到之前问过的这个问题)我读到可以通过继承Thread类或实现Runnable接口(interface)来创建线程。我看到了同一个类的代码。public

java - 如何将方法引用值分配给 Runnable

我有一个关于Java8Runnable的问题。publicstaticvoidmain(String[]args){Runnabler1=Test::t1;Runnabler2=Test::t2;Runnabler3=Test::t3;}publicstaticvoidt1(){}publicstaticStringt2(){return"abc";}publicstaticStringt3(Stringt){returnt;}如代码所示,我理解r1是对的,r3是错的,但我不明白为什么r2也是对的.谁能帮我理解一下? 最佳答案 r2

java - Eclipse - 将所需的库提取/打包到同一个 Runnable JAR 中

使用Eclipse将项目导出为RunnableJAR文件时,有以下三种选择:1.ExtractrequiredlibrariesintogeneratedJAR2.PackagerequiredlibrariesintogeneratedJAR3.Copyrequiredlibrariesintoasub-foldernexttothegeneratedJAR但是,似乎只能从RunnableJARFileExport窗口中选择三个选项中的一个。我想知道是否有一些方法可以混合使用这些方法,例如,在打包其余文件的同时提取一些文件?注意:我需要这个,因为我的一个JAR文件包含大量对其他文件的

java - 创建包含外部文件的 Runnable Jar

我想用java构建一个可运行的jar。我需要在jar中包含一些文件,这样当我执行jar时,文件会自动从java类中读取。因此,我在项目中创建了一个文件夹,并从项目中引用了这些文件。我按照一些教程创建了jar文件,但我无法将这些外部文件包含在我的jar文件中。请让我了解如何使用外部文件创建可运行的jar。我的文件结构是Test||-------src|||defaultpackage|||||test1.java|-------FileFOlder|||||abc.txt我正在访问test1.java类中的abc.txt。我的代码是,publicclasstest1{publicstat

java - Android Manifest - "Has No Default Constructor"带有 Activity/Runnable 类

我有一个相当困惑的问题。我正在尝试通过Android运行基本的聊天客户端。我已经在我的主要项目的3个类中设置了它。问题是,由于某些奇怪的原因,我的ChatConnect.java(它处理实际的聊天消息)似乎没有作为AndroidManifest.xml的Activity弹出,这导致了一些严重的问题——也就是我需要使用布局(特别是game.xml)在我的ChatConnect类中,并且由于未在list中定义为Activity而拒绝加载。不管怎样,这是我的三个类(class)。是的,我意识到StrictMode非常糟糕。但是,如果没有它,我也无法让聊天客户端工作,即使在list中有上述权限

java - RUNNABLE Thread.State 但在 Object.wait()

我提取了我的容器进程的JStack并让线程在那里运行,并按Thread.state分组的以下分布:countthreadstate67RUNNABLE1TIMED_WAITING(onobjectmonitor)8TIMED_WAITING(parking)4TIMED_WAITING(sleeping)3WAITING(onobjectmonitor)17WAITING(parking)对于可运行的线程,我有以下描述:"http-bio-8080-exec-55"daemonprio=10tid=0x000000002cbab300nid=0x642binObject.wait()[

java - 为什么 'extends Thread' 存在,而 'implements Runnable' 在所有情况下都是赢家

这个问题在这里已经有了答案:"implementsRunnable"vs"extendsThread"inJava(43个回答)关闭6年前。我知道implementsRunnableispreferredoverextendsThread在Java线程中,因为它允许我们在需要时扩展一些其他类。但如果是这样的话,extendsThread是否也比implementsRunnable有自己的优势,如果有,这些优势是什么?