关于Thread和Runnable

package ThreadTest;

public class RunnableDemo implements Runnable {
    
    public void run() {
        // TODO 自动生成的方法存根
        for (int i = 0; i < 100; i++) {
            System.out.println(Thread.currentThread().getName() + "   " + i);
        }
    }

    public static void main(String[] args) {

        RunnableDemo r1 = new RunnableDemo();
        new Thread(r1, "线程1").start();
        new Thread(r1, "线程2").start();
        // t.start();
        // t2.start();

    }

}

注意:上面程序中i的值是无法共享的。需要把i用private修饰。

package ThreadTest;

public class RunnableDemo implements Runnable {
    private int i = 0; //注意:此处i定义必须使用private修饰,如果是其他修饰符,i的值就无法共享。
    public void run() {
        // TODO 自动生成的方法存根
        for (; i < 100; i++) {
            System.out.println(Thread.currentThread().getName() + "   " + i);
        }
    }

    public static void main(String[] args) {

        RunnableDemo r1 = new RunnableDemo();
        new Thread(r1, "线程1").start();
        new Thread(r1, "线程2").start();
        // t.start();
        // t2.start();

    }

}
原文地址:https://www.cnblogs.com/changzuidaerguai/p/6522754.html