/**
*测试Runnable线程可以共享实例变量
*/
public class TestRunnable implements Runnable
{
private int i;
public void run()
{
i++;
System.out.println(Thread.currentThread().getName()+" i="+i);
}
public static void main(String[] args)
{
TestRunnable st = new TestRunnable();
for (int i = 0; i < 100; i++){
new Thread(st , "新线程"+i).start();
}
}
}
使用相同的Runnable创建了100个线程,每个线程对其i变量加一并输出,可发现100个线程输出的i是连续的。
新线程0 i=1
新线程5 i=6
新线程4 i=5
新线程3 i=4
新线程2 i=3
新线程1 i=2
新线程10 i=11
新线程20 i=10
新线程8 i=9
新线程15 i=13
新线程18 i=8
新线程6 i=7
新线程12 i=18
新线程11 i=17
新线程19 i=16
新线程26 i=26
新线程25 i=28
新线程7 i=15
新线程14 i=14
新线程13 i=12
新线程29 i=30
新线程28 i=29
新线程27 i=27
新线程24 i=22
新线程9 i=21
新线程17 i=25
新线程21 i=25
新线程22 i=25
新线程23 i=21
新线程16 i=19
新线程43 i=44
新线程42