天天看点

java在子线程与主线程传递数据(回调函数)

java在子线程与主线程传递数据

1.代码中用到的类介绍

c:拥有两个方法分别是设置value和获得value,拥有一个私有变量value。

mythread:子线程

thread:主线程

2.功能说明

在主线程中对类c的实例c的value进行设置,然后输出c.value

开启子线程,通过构造函数传入c的实例c,在子线程中改变c.value的值

子线程中调用主线程的静态方法传递数据给主线程说明子线程执行结束

子线程结束后在主线程中查看c.value

预习知识点:

什么是回调函数?

下面是知乎大神的回答,简直不能再精辟

java在子线程与主线程传递数据(回调函数)

代码:

java在子线程与主线程传递数据(回调函数)

思考:很多博文说java只有值传递没有引用传递,可是实践来看上述代码中的 c 就是类似c#通过引用传递给了子线程,子线程和主线程操作的是同一个类实例,c作为参数传递给子线程的时候并没有创建c的副本。不过也有博文说是java对象传递的是对象的地址,因此是值传递,没再去深究,貌似只是说法的问题,有空去看看源码深入了解下。

参考资料:

<a target="_blank" href="http://blog.csdn.net/asialyf/article/details/49936309">http://blog.csdn.net/asialyf/article/details/49936309</a>

<a target="_blank" href="http://www.cnblogs.com/coderworld/p/java-thread-return-information.html">http://www.cnblogs.com/coderworld/p/java-thread-return-information.html</a>