class StaticRunnable implements Runnable {
// 静态变量
private static int local=0;
final int FOR_COUNT = 50;
@Override
public void run() {
// 静态变量
for (int i = 0; i <= FOR_COUNT; i++) {
System.out.println(Thread.currentThread().getName() + ">>>>>"+"期望值" + i + ">>>>>"+"实际值" + local);
local++;
}
}
}
成员变量
class MemberRunnable implements Runnable {
// 成员变量
private int local=0;
final int FOR_COUNT = 50;
@Override
public void run() {
// 静态变量
for (int i = 0; i <= FOR_COUNT; i++) {
System.out.println(Thread.currentThread().getName() + ">>>>>"+"期望值" + i + ">>>>>"+"实际值" + local);
local++;
}
}
}
局部变量
class LocalRunnable implements Runnable {
final int FOR_COUNT = 50;
@Override
public void run() {
//局部变量
int local=0;
for (int i = 0; i <= FOR_COUNT; i++) {
System.out.println(Thread.currentThread().getName() + ">>>>>"+"期望值" + i + ">>>>>"+"实际值" + local);
local++;
}
}
}
测试
public class VariableMultiThreadTest {
public static void main(String[] args) {
Runnable staticRunnable = VariableMultiThreadEnum.static_var.runnable();
Runnable memberRunnable = VariableMultiThreadEnum.member_var.runnable();
Runnable localRunnable = VariableMultiThreadEnum.local_var.runnable();
test(staticRunnable);
// test(memberRunnable);
// test(localRunnable);
}
public static void test(Runnable runnable) {
Thread threada = new Thread(runnable);
Thread threadb = new Thread(runnable);
threada.start();
threadb.start();
}
}