线程-实现线程的两种方式

线程就是进程中独立运行的子任务。

单任务的特点是排队等待,是同步的,多线程是异步的。


一个进程正在运行时候至少有一个线程在运行。可以调用Thread.currentThread().getId()和Thread.currentThread().getName()来获得当前线程的ID和名称。


实现多线程的两种方式:继承Thread类和实现Runnable 接口。两种方式无本质区别

使用继承Thread类方式创建线程时候,局限性就是不能多继承。(因为Java语言的特点是单根继承)


1.继承Thread类的方式:要重写run()方法,启动线程要用start()方法

start()方法:通知“线程规划器”此线程已经准备就绪,等待调用线程对象的run()方法。

注:执行start()方法的顺序不代表线程的启动的顺序。


public class ThreadTest extends Thread{

public static void main(String[] args) {
ThreadTest t=new ThreadTest();
t.start();
System.out.println("运行结束");
}

@Override
public void run() {
// TODO Auto-generated method stub
super.run();
System.out.println("MyThread");
}
}


出现的结果

运行结束
MyThread

结果说明:多线程技术的代码运行结果与代码的执行顺序或者调用顺序是无关的。


2.实现Runnable接口:如果想要创建的线程类已经有一个父类了,就不能再使用继承方法了(因为Java不支持多继承),就需要使用实现Runnable接口的方式。


Thread关于Runnable接口的两个构造函数:

Thread(Runnable target)

Thread(Runnable target,String name)



public class Test3 implements Runnable{


public static void main(String[] args) {
Test3 t = new Test3();
Thread thread = new Thread(t);
thread.start();
System.out.println("运行结束");
}

@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("运行中");
}

}


运行结果

运行结束
运行中


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值