java线程implements Runnable实现

package com.tianmushanlu.thread;
/**
 * 创建步骤:
 *		 1. 自定义一个类实现Runnable接口。	
 *		 2. 实现Runnable接口 的run方法,把自定义线程的任务定义在run方法上。
 *		 3. 创建Runnable实现类对象。
 *		 4. 创建Thread类 的对象,并且把Runnable实现类的对象作为实参传递。
 * 		 5. 调用Thread对象 的start方法开启一个线程。
 * 
 * 注意:
 *       Runnable实现类的对象并 不是一个线程对象,只不过是实现了Runnable接口的对象而已。
 *  只有是Thread或者是Thread的子类才是线程对象。
 * 
 * 
 *
 */
class TicketWindows implements Runnable{

	Integer num = 50;
	@Override
	public void run() {
		while(true) {
			synchronized ("锁对象") {
				if(num > 0) {
					System.out.println(Thread.currentThread().getName()+"售出了第"+num+"票");
					try {
						Thread.sleep(1000);
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
					num--;
				}else{
					System.out.println("票以售罄...........");
					break;
				}
			}	
		}
		
	}
	
}


public class ThreadDemo2 {
	public static void main(String[] args) {
		//创建了一个Runnable实现类的对象
		TicketWindows TicketWindows = new TicketWindows();
		Thread thread1 = new Thread(TicketWindows,"窗口1");
		Thread thread2 = new Thread(TicketWindows,"窗口2");
		Thread thread3 = new Thread(TicketWindows,"窗口3");
		//开启3个线程售票
		thread1.start();
		thread2.start();
		thread3.start();
	}
	

}

猜你喜欢

转载自tianmushanlu.iteye.com/blog/2310858