1,Runnable例子

class ThreadDemo {
	public static void main(String[] args) {
		TestThread t = new TestThread();
		new Thread(t).start();
		new Thread(t).start();
		new Thread(t).start();
		new Thread(t).start();
	}
}

class TestThread implements Runnable {
	int tickets = 100;
	public void run() {
		while(true) {
			if(tickets<0)
				break;
			System.out.println(Thread.currentThread().getName() + " is saling " + tickets--);
		}
	}
}

 这里模拟4个窗口,一起卖100张车票。

 新建一个线程可以通过继承Thread类或实现Runnable,几乎所有的线程实现都可以通过实现Runnable完成,而且该方法适合多个相同线程去处理同一个资源的情况,把虚拟的线程和数据有效分离,较好地体现了面向对象的设计思想。上面4个窗口一起卖100张票的例子有继承Thread的方法就不是太好实现。