Java基础(十五)-----多线程之多线程的创建顺序

2014-11-24 02:40:35 · 作者: · 浏览: 0

自从学习Java开始,多线程的问题就一直存在,不能很好的掌握,不能很好地运用,这也是把多线程放在复习最后的原因,根据我的经验,想一劳永逸的一次性学好某门技术是不可能的,多线程也是一样,先做一个大概,全面的认识,当在实际开发问题中遇见了问题再学习,那个时候学习理解和应用起来应该容易很多。

没想到在学习多线程的第一时间就遇到了问题,代码如下:

package thread;

public class ThreadTest3 extends Thread {
	
	private int i=0;
	
	public void run()
	{
		for(;i<100;i++)
		{
			System.out.println(getName()+" "+i);
		}
	}

	public static void main(String[] args) 
	{
		
		for(int i=0;i<100;i++)
		{
			System.out.println(Thread.currentThread().getName()+"oo "+i);
			if(i==20)
			{
				System.out.println("创建线程1");
				new ThreadTest3().start();
				System.out.println("创建线程2");
				new ThreadTest3().start();
			}
		}
		

	}

}
这个代码是来自李刚的疯狂讲义,书虽然讲的很详细,但是对于线程1和线程2的创建顺序却忽略了。经过我多次实验,得到如下结论:

①,主程序,线程1和线程2交替执行

②主线程中是先创建线程1,接着创建线程2,注意:线程2不必等到线程1执行完毕才创建。

为什么我在开始理解的是先创建线程1,然后等到线程1执行完毕才创建线程2,然后执行?

原因是:我错误的认为执行线程与调用方法是一样的。