Thread的基本用法

一.线程的创建:

1.继承Thread重写run

2.实现Runable,重写run

3.继承Thread,匿名内部类

4.实现Runnable,匿名内部类

5.lambda

1.继承Thread重写run

 2.实现Runable,重写run

3.继承Thread,匿名内部类

4.实现Runnable,匿名内部类

5.lambda

二.线程中断

本质上来说方法就一种,让该线程的入口方法执行完毕。

1.给线程设定一个结束标志位。

 由于线程t和main函数里的其他部分是并发执行的,可以在main函数里设立结束标志位。

Thread也有一个自带的结束标志位currentThread是获取当前线程实例t,isInterrupted是t对象里自带的一个标志位,相当于。上一个的isQuit;main函数中的interrup的作用相当于上面的isQuit=true。

 这里会报错是因为sleep被唤醒时会自动将isInterrupted清空(相当于isQuit=false)。

若要结束循环就在while里的catch中加个break

sleep清空标志位是为了让线程对于何时结束有一个更明确地认识,interrupt方法只是通知线程该结束啦,不是强制结束,类似于家长周末叫我起床,叫完之后我z只是知道该起了,至于具体时间由我灵活控制。

三.线程的等待

由于线程是并发执行的,无法确定哪个线程先执行哪个线程后执行,所以引入线程等待,通过调用join()方法来实现线程等待。在线程1里调用线程2.join,1线程就要等待线程2执行完以后再执行,线程2不执行完毕线程1就会阻塞等待(干等)。

四.线程的状态

NEW 系统中的线程还创建出来,只是有个Thread对象

TERMINATED 系统中的线程已经执行完毕,Thread对象还在

RUNNABLE就绪状态:1.正在CPU上运行;2.准备好随时可以去CPU上运行

 TIMED_WAITING  指定时间等待。sleep方法

 BLOCK 表示等待锁出现的状态

WAITING 使用wait方法出现的状态。

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值