java向线程中传递参数的方法
2012-11-15 16:04
344 查看
向线程中传递数据的三种方法:
一、通过构造函数传递参数
public class MyThread1 extends Thread
{
private String name;
public MyThread1(String name)
{
this.name = name;
}
public void run()
{
System.out.println("hello " + name);
}
public static void main(String[] args)
{
Thread thread = new MyThread1("world");
thread.start();
}
}
二、通过变量和方法传递数据
public class MyThread2 implements Runnable
{
private String name;
public void setName(String name)
{
this.name = name;
}
public void run()
{
System.out.println("hello " + name);
}
public static void main(String[] args)
{
MyThread2 myThread = new MyThread2();
myThread.setName("world");
Thread thread = new Thread(myThread);
thread.start();
}
}
三、通过回调函数传递数据
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();
}
}
一、通过构造函数传递参数
public class MyThread1 extends Thread
{
private String name;
public MyThread1(String name)
{
this.name = name;
}
public void run()
{
System.out.println("hello " + name);
}
public static void main(String[] args)
{
Thread thread = new MyThread1("world");
thread.start();
}
}
二、通过变量和方法传递数据
public class MyThread2 implements Runnable
{
private String name;
public void setName(String name)
{
this.name = name;
}
public void run()
{
System.out.println("hello " + name);
}
public static void main(String[] args)
{
MyThread2 myThread = new MyThread2();
myThread.setName("world");
Thread thread = new Thread(myThread);
thread.start();
}
}
三、通过回调函数传递数据
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();
}
}
相关文章推荐
- 【转】【Thread】Java向线程传递参数的常用方法【多线程】
- Java多线程:向线程传递参数的三种方法
- JAVA前端与后端参数传递方法小结
- Java多线程初学者指南(7):向线程传递数据的三种方法
- Java高级篇-7-Java中方法的参数是如何传递的
- Java方法的参数传递方式为: 值传递
- java动态加载(将java类名、方法、方法参数当做参数传递,执行方法)
- JAVA参数在方法中的传递过程
- Java参数在方法中的传递
- JAVA方法参数传递技巧[转]
- Java方法的参数是按值传递的.
- java方法参数的传递
- Java方法参数传递方式
- 详解Java中参数在方法中传递的过程
- Java--方法参数的传递
- java中方法的参数传递机制
- java中方法的参数传递机制
- 【转】传递参数到线程的n个方法
- 新手容易混乱的String+和StringBuffer,以及Java的方法参数传递方式。
- java程序设计语言将参数传递方法的方式