java中如何给Runnable线程传递参数?
一、通过构造函数传递参数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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(); } } |
二、通过变量和方法传递数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 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(); } } |
三、通过回调函数传递数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | 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(); } } |
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 分享4款.NET开源、免费、实用的商城系统
· 解决跨域问题的这6种方案,真香!
· 5. Nginx 负载均衡配置案例(附有详细截图说明++)
· Windows 提权-UAC 绕过