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(); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。