Java线程

Java线程与并发

Java 主要是通过Thread类以及Runnable接口实现线程机制的。Thread类:为底层操作系统的线程体系架构提供一套统一的接口。Runnable接口为关联Thead对象的线程提供执行代码。两种方式创建Runnable对象:

1.实现Runnable接口的匿名类

Runnable r =new  Runnable(){	
@override	
public void run()	
{
system.out.println("Hello from Thread");	
}
};

2.Java 8 引用lambda更快捷创建runnable

Runnable r = ( )->System.out.println("Hello from Thread"); 

获取线程和设置线程状态

获取和设置线程的名称

默认前缀:Thread—

1.String getName() setName中设置

2.Thread(Runnable r,String name)

获取一条线程的存活状态

 boolean isAlive()


  1. NEW :该状态下线程还没有开始执行
  2. RUNNABLE:该状态下线程正在JVM中执行
  3. BLOCKED:该状态下线程被阻塞并等待一个监听锁
  4. WAITING:该状态下无限期地等待另一条线程执行特定的操作
  5. WTIMED_WAITING:该状态下在特定的时间内等待另外一条线程执行某种操作
  6. REIMINATED:该状态下线程已经退出
线程的5个状态
  1. 线程名称
  2. 线程存活的标识
  3. 线程的执行状态
  4. 线程的优先级
  5. 线程是否为守护线程
获取和设置线程的优先级
Runtime类的int availableProcessors()方法,来确定JVM上可用的处理器或处理器核心的数量。int getPriority():返回当前优先级void setPriority() :设置优先级

启动线程

调用void start()方法启动与该对象关联的线程。如果线程之前已经启动且处于运行状态,或者线程已经死亡,这个方法会抛出java.lang.IllegalThreadStateException当调用strat()方法,同时会调用run()方法

中断线程

void interrupt()方法

等待线程

Thread提供了3中join()方法

1.void join()就是无限期等待直至线程死亡

2.void join(long millis)该线程死亡前最多等待millis毫秒

3.void join(long millis int nanos)该线程死亡前最多等待millis毫秒加nanos纳秒

睡眠线程

Thread类声明了一堆静态方法致使线程睡眠。暂时性地执行

void sleep(long millis) 睡眠millis毫秒数

void sleep(long millis int nanos) 睡眠millis毫秒数


join()和sleep()一个是等待,一个是睡眠是不同的概念,还有人会不明白wait()方法的使用,wait()其实是使线程进入等待状态,等待调用runnable 而sleep()是让线程暂时停止执行。

版权声明:本文为博主原创文章,未经博主允许不得转载。https://mp.csdn.net/postedit/80963060


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值