实现Java线程的取值并返回的方法

如何让一个线程不断跑起来,并且在取到值的时候能返回值而线程能继续跑呢?

我们都知道可以用Callable接口获得线程的返回值,或者触发事件监听来操作返回值,下面我将介绍另一种方法。

public abstract class Test implements Runnable {
  public String A;

  //开启线程
  public void run() {
    while(true) {
      //此处写该方法的逻辑代码

      //listen()方法操作取得值A
      listen(A);

    }

  }

  //定义一个抽象方法listen()
  public abstract void listen(String A);

}

这样,线程取到值将存放在抽象方法listen()里,并且线程也将一直跑起来而不会停止。

当我们需要用到这个值时,只需要重写listen()方法就可以啦。

public class Main {
  public static void main(String[] args) {
    Thread thread = new Thread(new Test() {

      @Override
      public void listen(String A) {
        // TODO Auto-generated method stub

      }
    });
    thread.start();
  }
}

以上就是本知识点的全部内容,感谢大家对我们的支持。

(0)

相关推荐

  • Java 读取指定路径的文本文件并返回String的方法

    如下所示: import java.io.*; /** * Created by liuyikai on 2016/8/13. */ public class FileUtil { public static String LoadContentByPath(String path) throws IOException { InputStream is = new FileInputStream(path); BufferedReader in = new BufferedReader(new

  • Java提示缺少返回语句的解决办法

    Java提示缺少返回值语句怎么办?这里我们给大家提供具体的解决方法. 首先,以下面的程序为例,会看到在控制台有:错误:缺少返回语句的提示. 找到类中定义的方法test中发现,明明已经定义了return,软件依然会提示错误. 将return定义到for循环之外,就会发现,程序不再报错. 原因是因为数组不仅仅可以存放具体的变量值,而且可以不赋给数组任何值. 在数组内容为空的情况,程序是没有报错的,所以需要将return返回值定义到   for 循环之外即可. 关于Java中return缺少返回语句的

  • java api返回值的标准化详解

    api返回值的标准化 例如 {"status":200,"message":"操作成功","data":"{\"id\":1,\"name\":\"张三\"}"} 封装返回对象 对象被封装在base.util.ResponseUtils类型下,返回值是标准的ResponseEntity对象,返回体进行了二次封装,主要有status,messsage

  • java发起http请求获取返回的Json对象方法

    话不多说,先看代码! /** * Created by david on 2017-7-5. */ import com.google.gson.JsonObject; import com.google.gson.JsonParser; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import ja

  • 实现Java线程的取值并返回的方法

    如何让一个线程不断跑起来,并且在取到值的时候能返回值而线程能继续跑呢? 我们都知道可以用Callable接口获得线程的返回值,或者触发事件监听来操作返回值,下面我将介绍另一种方法. public abstract class Test implements Runnable { public String A; //开启线程 public void run() { while(true) { //此处写该方法的逻辑代码 //listen()方法操作取得值A listen(A); } } //定义

  • java 中遍历取值异常(Hashtable Enumerator)解决办法

    java 中遍历取值异常(Hashtable Enumerator)解决办法 用迭代器取值时抛出的异常:java.util.NoSuchElementException: Hashtable Enumerator 示例代码 //使用迭代器遍历 Iterator<String> it = tableProper.stringPropertyNames().iterator(); sqlMap = new HashMap<String,String>(); while(it.hasNe

  • python 字典中取值的两种方法小结

    如下所示: a={'name':'tony','sex':'male'} 获得name的值的方式有两种 print a['name'],type(a['name']) print a.get('name'),type(a.get('name')) 发现这两个结果完全一致,并没有任何的差异. 怎么选择这两个不同的字典取值方式呢? 如果字典已知,我们可以任选一个,而当我们不确定字典中是否存在某个键时,我之前的做法如下 if 'age' in a.keys(): print a['age'] 因为不先

  • jquery通过name属性取值的简单实现方法

    jquery通过name属性取值的简单实现方法 alert($("input[name='inputTest']").val()); alert($("input[type='text']").attr("id")); //这个是取id的值,方便记就写在这儿了 $("input[name='inputTest']").each( function(){ alert($(this).val()); } ) alert($(&qu

  • java代码抓取网页邮箱的实现方法

    实现思路: 1.使用java.net.URL对象,绑定网络上某一个网页的地址 2.通过java.net.URL对象的openConnection()方法获得一个HttpConnection对象 3.通过HttpConnection对象的getInputStream()方法获得该网络文件的输入流对象InputStream 4.循环读取流中的每一行数据,并由Pattern对象编译的正则表达式区配每一行字符,取得email地址 package cn.sdhzzl; import java.io.Buf

  • layUI使用layer.open,在content打开数据表格,获取值并返回的方法

    在layUI编写的页面中,遇到这么一种情况,从一个页面中使用layer.open打开一个新窗口,新窗口中是一个数据表格,现在需要选中数据表格中的一列并获取它的值,以便下面这个选择按钮可以使用这个值进行后一步的操作. 如简单的选中之后显示选中数据的id. 首先在当前原始页面上,定义一个工具条 <button class="layui-btn" data-type="simulatePack">模拟</button> 在实现这个工具条的点击操作-

  • Java线程创建与Thread类的使用方法

    目录 1.线程与Thread类 1.1操作系统中的线程与Java线程 1.1.1线程与Thread类 1.1.2Thread类的构造方法 1.1.3启用java线程必会的方法 1.2第一个Java多线程程序 1.3使用Runnable对象创建线程 1.4使用内部类创建线程 1.5使用Lambda表达式创建线程 1.6多线程并发执行简单演示 1.7多线程并发执行的优势 2.Thread类的常用属性与方法 2.1Thread类中的重要属性 2.2Thread类中常用方法总结 2.2.1常用方法 2.

  • 微信小程序 传值取值的几种方法总结

    微信小程序 传值取值 小程序里常见的取值有以下几种,一个完整的项目写下来,用到的概率几乎是100%. 列表index下标取值 页面传值 form表单取值 1. 列表index下标取值 实现方式是:data-index="{{index}}"挖坑及e.currentTarget.dataset.index来填坑即可 1.1 生成值 <image src="../../../images/icon_delete.png" /><text>删除&l

  • JQueryEasyUI框架下的combobox的取值和绑定的方法

    最近做的项目涉及到JQueryEasyUI框架的使用,EasyUI是什么?网上解释说它是来自W3C标准WEB前端专家DHTML精英俱乐部的简单易用功能强大的轻量级WEB前端JavaScript框架!从这句话的理解来说,我认为它是一种JavaScript框架. 对于最近的使用中,给我的感觉就是,借用官网JqueryEasyUI上的一句话,EasyUI是基于jQuery用户界面插件的集合,我把它理解成一种插件,不知道有没有问题.而使用easyui,不需要写很多的javascript代码,只需在定义的

  • jQuery对html元素取值与赋值的方法

    Jquery给基本控件的取值.赋值 TEXTBOX: var str = $('#txt').val(); $('#txt').val("Set Lbl Value"); //文本框,文本区域: $("#text_id").attr("value",'');//清空内容 $("#text_id").attr("value",'test');// 填充内容 TEXTBOX: 复制代码 代码如下: var st

随机推荐