Java向Runnable线程传递参数方法实例解析
javaRunnable接口:是一个接口,它里面只有一个run()方法,没有start()方法,继2113承Runnable并实现这个方法就可以实现多线程了,但是5261这个run()方法不能自4102己调用,必须由系统来调用。
向线程中传递数据的三种方法:
一、通过构造函数传递参数
publicclassMyThread1extendsThread
{
privateStringname;
publicMyThread1(Stringname)
{
this.name=name;
}
publicvoidrun()
{
System.out.println("hello"+name);
}
publicstaticvoidmain(String[]args)
{
Threadthread=newMyThread1("world");
thread.start();
}
}
二、通过变量和方法传递数据
publicclassMyThread2implementsRunnable
{
privateStringname;
publicvoidsetName(Stringname)
{
this.name=name;
}
publicvoidrun()
{
System.out.println("hello"+name);
}
publicstaticvoidmain(String[]args)
{
MyThread2myThread=newMyThread2();
myThread.setName("world");
Threadthread=newThread(myThread);
thread.start();
}
}
三、通过回调函数传递数据
classData
{
publicintvalue=0;
}
classWork
{
publicvoidprocess(Datadata,Integernumbers)
{
for(intn:numbers)
{
data.value+=n;
}
}
}
publicclassMyThread3extendsThread
{
privateWorkwork;
publicMyThread3(Workwork)
{
this.work=work;
}
publicvoidrun()
{
java.util.Randomrandom=newjava.util.Random();
Datadata=newData();
intn1=random.nextInt(1000);
intn2=random.nextInt(2000);
intn3=random.nextInt(3000);
work.process(data,n1,n2,n3);//使用回调函数
System.out.println(String.valueOf(n1)+"+"+String.valueOf(n2)+"+"
+String.valueOf(n3)+"="+data.value);
}
publicstaticvoidmain(String[]args)
{
Threadthread=newMyThread3(newWork());
thread.start();
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。