通过继承Thread类,重写父类run方法。
由于此方法是无参方法。没办法直接通过run方法传递参数。
所以只能曲线救国。声明自己本来需要传的参数为实例或类变量a,b。然后再run方法中对实例变量进行操作。
实例变量(也会有多线程为题,多个线程操作实例变量,一样有可能在run方法前改变实例变量)
public class CreateWay1 extends Thread {
int a;
String b;
String c;
public void run() {
c = a + b;
}
public static void main(String[] args) {
CreateWay1 t = new CreateWay1();
t.a = 0;
t.b = "t";
t.start();
System.out.print(t.c);
}
类变量 (多线程下多个线程在执行run方法前就改变了类变量,是会有多线程问题的)
public class CreateWay1_1 extends Thread {
static int a;
static String b;
static String c;
public void run() {
c = a + b;
}
public static void main(String[] args) {
CreateWay1_1 t = new CreateWay1_1();
CreateWay1_1.a = 0;
CreateWay1_1.b = "t";
t.start();
System.out.print(c);
}
}
本文探讨了在Java中通过继承Thread类创建线程时,如何处理参数传递的问题。由于run方法无法直接接收参数,因此通常将参数作为实例变量。然而,这种方式可能导致多线程环境下实例变量的安全问题。示例代码展示了如何设置和使用实例变量以及类变量,并指出了在多线程环境中可能存在的并发问题。
1493

被折叠的 条评论
为什么被折叠?



