java 线程

来源:互联网 发布:携程 知乎 亲子园 编辑:程序博客网 时间:2024/06/06 17:59

两种实现线程方法:

1、继承java.lang.Thread

package com.zbj.thread;/** * 创建thread两步法: * 1、定义类继承java.lang.Thread类 * 2、重新run()方法 * * 调用thread步骤: * 1、实例化线程对象 ,如MyThread01 t=new MyThread01(); * 2、调用线程对象的start(),如t.start() * @author Administrator * */public class MyThread01 extends Thread {@Overridepublic void run() {for (int i = 0; i < 100; i++) {System.out.println("我的线程开始跑了:" + i);}}public static void main(String[] args) {MyThread01 mt1 = new MyThread01();mt1.start();}}


2、实现Runnable接口

package com.zbj.thread;/** * 创建Runnable线程两步法 * 1、实现Runnable接口 * 2、重写run方法 *  *  * 调用runnable线程步骤: * 1、实例化线程对象 ,如MyThread01 t=new MyThread01(); Thread tt=new Thread(t); * 2、调用线程对象的start(),如tt.start() * @author Administrator * */public class MyThread02 implements Runnable {@Overridepublic void run() {for (int i = 0; i < 100; i++) {System.out.println("我的线程开始跑了:" + i);}}public static void main(String[] args) {MyThread02 thread = new MyThread02();new Thread(thread).start();}}


3、两者的区别

实现runnable接口可以实现资源共享,而 extends Thread则不行。

package com.zbj.thread;public class MyThread03 implements Runnable {private int ticket = 10;public void run() {for (int i = 0; i < 20; i++) {if (this.ticket > 0) {System.out.println( "卖票:ticket" + this.ticket--);}}}public static void main(String[] args) {MyThread03 thread = new MyThread03();new Thread(thread).start();new Thread(thread).start();new Thread(thread).start();//继承Thread的线程这样调用会报错。}}