1.通过构造函数传递,这种很简单当传递参数少的时候可用。
2.通过类中定义一系列的public的方法或变量(也可称之为字段)。然后在建立完对象后,通过对象实例逐个赋值。
private String name;
public void setName(String name)
{
this.name = name; }
这也比较常见
3.通过回调函数传递数据
package thread;
class Data
{
public int value = 0;
}
class Work
{
public void process(Data data,Integer numbers)
{
for (int n : numbers)
{
data.value += n;
}
}
}
public class MyThread3 extends Thread{
private Work work;
public MyThread3(Work work)
{
this.work = work;
}
public void run ()
{
java.util.Random random = new java.util.Random();
Data data = new Data();
int n1 = random.nextInt(1000);
int n2 = random.nextInt(2000);
int n3 = random.nextInt(3000);
work.process(data, n1, n2, n3); // 使用回调函数
System.out.println(String.valueOf(n1) + "+" + String.valueOf(n2) + "+"
+ String.valueOf(n3) + "=" + data.value);
}
public static void main(String[] args)
{
Thread thread = new MyThread3(new Work());
thread.start();
}
}
在上面代码中的process方法被称为回调函数。从本质上说,回调函数就是事件函数。在Windows API中常使用回调函数和调用API的程序之间进行数据交互。因此,调用回调函数的过程就是最原始的引发事件的过程。在这个例子中调用了process方法来获得数据也就相当于在run方法中引发了一个事件。
分享到:
相关推荐
Java多线程初学者指南(7):向线程传递数据的三种方法.docx )
易语言多线程传递自定义数据(免加延时方法)。Tags:多线程传递自定义数据。
MFC编程,一个对话框程序,多线程之间通过消息传递数据。
这个demo介绍了通过Handler在线程之间传递消息,demo中一个三个线程,主线程,发送消息的分线程,接收消息的分线程。发送消息的分线程会通知主线程更改标签文字,同时会通知接收消息的分线程更改进度条的进度。
Hystrix跨线程传递数据解决方案:HystrixRequestContext.docx
本代码介绍了如何给线程传递参数,以及用参数在主线程中显示数据
易语言多线程传递多参数源码,多线程传递多参数,子程序11,子程序1
有两种方法给线程传递数据。第一种是使用带委托参数的Tread类构造行数;另一种方式是程序员自己创建一个类,把线程的方法定义为实例方法,这样可以初始化实例的数据,然后就可以用Start()方法启动线程。
在多线程的异步开发模式下,数据的传递和返回和同步开发模式有很大的区别。由于线程的运行和结束是不可预料的,因此,在传递和返回数据时就无法象函数一样通过函数参数和return语句来返回数据
线程间通信方式3:消息传递方式的演示。采用计算演示线程的执行,并采用用户界面线程来实时显示执行的进度,线程间的通信方式采用了3种方式相结合,对多线程间的通信有比较好的学习和研究价值。
易语言CreateThread启动线程传递多个类型参数,可以自定义数据类型,可以传递多个类型的多个参数源码。
但在多线程的异步开发模式下,数据的传递和返回和同步开发模式有很大的区别。由于线程的运行和结束是不可预料的,因此,在传递和返回数据时就无法象函数一样通过函数参数和return语句来返回数据
易语言的启动线程默认是传递一个整数的,要传递多个变量,思路是我们把要传递的变量定义成一个整数型数组,传递的是参数内容的内存地址指针,由于传递的参数可能是文本和整数,所以我们要封装两个取文本指针地址和...
使用共享内存。即使用一个两个线程都能够共享的变量...使用singal/slot机制,把数据从一个线程传递到另外一个线程。 第一种办法在各个编程语言都使用普遍,而第二种方式倒是QT的特有方式,下面主要学习一下这种方式
易语言多线程传递多参数源码,有很好的学习价值
NULL 博文链接:https://huihuilou.iteye.com/blog/1934814
易语言多线程传递多参数例程源码,利用api实现~ 解决无法传递多参数的问题
c# 利用委托,两个窗口间传递数据,同样适用于多线程传递数据!
通过改变全局变量实时改变目标变量的做法,比如这里,楼主也就是我,为了在树莓派上运行一个tcp结构的客户端线程,并通过摄像头线程收集的数据实时的通过tcp客户端线程处理并发回服务端(这是只对两个线程间的数据传递,多...
android 多线程 数据传递 handle 源代码 可以通过handle更新ui,提高客户体验