01-多线程

package cn.itcast.demo.po;

public class TradictionalThred {
	public static void main(String[] args) {
		// 1. 传统线程创建方式1
		Thread thread = new Thread() {
			@Override
			public void run() {
				while (true) {
					try {
						Thread.sleep(1000);
						String name = Thread.currentThread().getName();
						System.out.println("1:"+name);
					} catch (Exception e) {
						e.printStackTrace();
					}
				}
			}
		};
		thread.start();
		
		// 2. 传统线程创建方式2
		Thread thread2 = new Thread(new Runnable() {
			@Override
			public void run() {
				while (true) {
					try {
						Thread.sleep(1000);
						String name = Thread.currentThread().getName();
						System.out.println("2:"+name);
					} catch (Exception e) {
						e.printStackTrace();
					}
				}
			}
		});
		thread2.start();
		
		// 3. 传统线程创建方式3
		new Thread(new Runnable() {
			// 这是匿名内部类的对象中的方法,如果没有3-1的run方法(即不改写父类的方法),就调用3-2中的方法,如果有3-1的方法(即改写了父类的方法,就执行3-1的方法)
			@Override
			public void run() {
				while (true) {
					try {
						Thread.sleep(1000);
						String name = Thread.currentThread().getName();
						System.out.println("3-2:"+name);
					} catch (Exception e) {
						e.printStackTrace();
					}
				}
			}
		}){
			// 这是匿名内部类的方法(由于这里改写了父类的run方法,所以只执行3-1的方法,而不执行3-2的方法,如果不该写3-1的run方法,就执行3-2的run方法)
			public void run() {
				while (true) {
					try {
						Thread.sleep(1000);
						String name = Thread.currentThread().getName();
						System.out.println("3-1:"+name);
					} catch (Exception e) {
						e.printStackTrace();
					}
				}
			};
		}.start();
	}
}

 

运行结果:

1:Thread-0
2:Thread-1
3-1:Thread-2
1:Thread-0
2:Thread-1
3-1:Thread-2
1:Thread-0
2:Thread-1
3-1:Thread-2
2:Thread-1
1:Thread-0
3-1:Thread-2
2:Thread-1
1:Thread-0
3-1:Thread-2
2:Thread-1
1:Thread-0
3-1:Thread-2
.........

.........

 

posted @ 2017-08-15 16:10  半生戎马,共话桑麻、  阅读(113)  评论(0)    收藏  举报
levels of contents