线程2

线程的创建和使用
1、线程的创建和启动
Java语言的JVM允许程序运行多个线程,它通过java.lang.Thread 类来体现。
Thread类的特性:每个线程都是通过某个特定Thread对象的run()方法来完成操作的,经常把run()方法的主体称为线程体
通过该Thread对象的start()方法来启动这个线程,而非直接调用run()
2、Thread类
构造器
Thread():创建新的Thread对象
Thread(String threadname):创建线程并指定线程实例名
Thread(Runnable target):指定创建线程的目标对象,它实现了Runnable接口中的run方法
Thread(Runnable target, String name):创建新的Thread对象
3、API中创建线程的两种方式
JDK1.5之前创建新执行线程有两种方法:
继承Thread类的方式
实现Runnable接口的方式
4、 方式一:继承Thread类
(1) 定义子类继承Thread类。
(2) 子类中重写Thread类中的run方法。
(3) 创建Thread子类对象,即创建了线程对象。
(4) 调用线程对象start方法:启动线程,调用run方法
代码:
在这里插入图片描述
结果:
在这里插入图片描述
5、 方式二:实现Runnable接口
(1)定义子类,实现Runnable接口。
(2) 子类中重写Runnable接口中的run方法。
(3) 通过Thread类含参构造器创建线程对象。
(4) 将Runnable接口的子类对象作为实际参数传递给Thread类的构造器中。
(5) 调用Thread类的start方法:开启线程,调用Runnable子类接口的run方法。
代码:
在这里插入图片描述
结果:
在这里插入图片描述
6、线程创建的两种方式的区别:
(1).继承Thread类:当前类就是一个真正的线程类
(2). 实现Runnable接口:实现类本身并不是一个线程类,他只是拥有线程可执行的任务,创建线程,还需要将该可执行任务传递给Thread 类
(3).对于线程,必须调用其start方法 否则 该线程是不会执行的
(4).如果直接调用线程类的run方法 此时程序不是多线程的 只是普通方法的调用
(5). 一个线程一旦结束 就不能再次启动 (一个线程只能启动一次),如果二次启动线程则会出现:IllegalThreadStateException
(6). 如果继承Thread类 ,但是Java中的继承是单继承
Runnable接口 ,通过实现的方式 , Java实现是多实现
第二中写法:
在这里插入图片描述
第三种写法:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值