实现线程的两种方式

      实现线程的两种方式:继承Thread类和实现Runnable接口。

      两种方式差异:实现Runnable接口避免单继承的局限性。

     

      继承方式案例:

package com.neutron.thread.demo;
/**
 * 继承方式
 * 1.继承Thread类
 * 2.重写Thread的run方法,将自定义的方法存储在run方法中
 * 3.调用线程的start方法,启动线程,调用run方法
 * 
 * 多个线程取得cpu的执行权,cpu执行到谁,谁就运行。多线程具有随机性,谁抢到就执行谁,执行时间不确定。
 * Thread类用于描述线程,run方法用于存储线程要执行的代码。
 * @author zhanght
 *
 */
public class Ticket extends Thread {
	private static int ticket = 15;
	@Override
	public void run() {
		while(true) {
			if (ticket > 0) {
				System.out.println(this.getName() + " " + ticket--);
			}
		}
	}

	public static void main(String[] args) {
		Ticket ticket = new Ticket();
		Ticket ticket2 = new Ticket();
		Ticket ticket3 = new Ticket();
		ticket.start();
		ticket2.start();
		ticket3.start();
	}
	
	/*
	 *  Thread-1 15
	    Thread-2 14
	    Thread-0 14
	    Thread-2 12
	    Thread-2 10
	    Thread-2 9
	    Thread-2 8
	    Thread-2 7
	    Thread-2 6
	    Thread-1 13
	    Thread-2 5
	    Thread-0 11
	    Thread-2 3
	    Thread-1 4
	    Thread-2 1
	    Thread-0 2
	 */

}
       实现接口方式:

package com.neutron.thread.demo;
/**
 * 1.定义类实现Runnable接口
 * 2.重写Runnable接口中的run方法,将线程要运行的代码放在该run方法中。
 * 3.通过Thread类建立线程对象
 * 4.将实现Runnable接口的子类对象作为实际参数传递给Thread类的构造方法中。
 *   要想线程执行指定对象的run方法,那么该对象必须实现Runnable接口
 * 5.调用Thread类的start方法,开启线程并且调用实现Runnable接口对象的run方法。
 * @author zhanght
 *
 */
public class Tickets implements Runnable {
	private int ticket = 30;
	@Override
	public void run() {
		 while (true) {
			 if (ticket > 0) {
				 System.out.println(Thread.currentThread().getName() + " " + ticket--);
			 }
		 }
	}
	
	public static void main(String[] args) {
		Tickets t1 = new Tickets();
		new Thread(t1).start();
		new Thread(t1).start();
		new Thread(t1).start();
	}
	
	/*
	 *  Thread-0 30
		Thread-0 29
		Thread-0 28
		Thread-0 27
		Thread-0 26
		Thread-1 25
		Thread-1 23
		Thread-1 22
		Thread-1 21
		Thread-1 20
		Thread-1 19
		Thread-1 18
		Thread-1 17
		Thread-1 16
		Thread-1 15
		Thread-1 14
		Thread-1 13
		Thread-1 12
		Thread-1 11
		Thread-1 10
		Thread-1 9
		Thread-1 8
		Thread-1 7
		Thread-1 6
		Thread-1 5
		Thread-1 4
		Thread-1 3
		Thread-1 2
		Thread-1 1
		Thread-0 24
	 */

}
         

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值