Java线程状态

作者:李坤凤
本次任务完成时间:2019年8月16日
开发工具与关键技术:Java线程状态 开发工具:MyEclipse 10 关键技术: Java线程状态

线程的五种状态:
1)新建状态(New):线程对象实例化后就进入了新建状态。
2)就绪状态(Runnable):线程对象实例化后,其他线程调用了该对象的 start()方法,虚拟机便会启动该线程,处于就绪状态的线程随时可能被调度执 行。
3)运行状态(Running):线程获得了时间片,开始执行。只能从就绪状态进入 运行状态。
4)阻塞状态(Blocked):线程因为某个原因暂停执行,并让出CPU的使用权后 便进入了阻塞状态。

  • 等待阻塞:调用运行线程的wait()方法,虚拟机会把该线程放入等待池。
  • 同步阻塞:运行线程获取对象的同步锁时,该锁已被其他线程获得,虚拟机 会把该线程放入锁定池。
  • 其他线程:调用运行线程的sleep()方法或join()方法,或线程发出I/O请求 时,进入阻塞状态。
    5)结束状态(Dead):线程正常执行完或异常退出时,进入了结束状态。
    在这里插入图片描述
    6)运行结果;
    在这里插入图片描述
7)、代码
package com.xy.dome;
public class ThreadMethodDemo {
	public static void main(String[] args) {
		System.out.println("main 线程id:" + Thread.currentThread().getId());
		System.out.println("main 线程名称:"+Thread.currentThread().getName());
		MyThread3 myThread = new MyThread3();
		Thread thread1 = new Thread(myThread);
		//setName()可以设置线程名称
		thread1.setName("线程a");
		//也可以通过构造器设置线程名称
		Thread thread2 = new Thread(myThread,"线程b");
		 // 设置线程的优先级 [1~10] 
         // 线程优化级较高的线程不一定先执行,线程的调度终还是取决于操作系统 
		thread1.setPriority(1);
		thread2.setPriority(10);
		System.out.println("thread1 是在否活动:" + thread1.isAlive());
		System.out.println("thread2 是在否活动:" + thread2.isAlive());
		thread1.start();
		thread2.start();
		// 不能重复调用start() 
		// thread2.start();
		System.out.println("thread1 是在否活动:"+ thread1.isAlive());
		System.out.println("thread2 是在否活动:" + thread2.isAlive());
		// 主线程sleep 5s 
		try{
			Thread.sleep(5000);
		}catch(InterruptedException e)
		{
			//TODO Auto-generated catch block
			e.printStackTrace();
		}
		System.out.println("5秒后...");
	}
}	
class MyThread3 implements Runnable{
	@Override
	public void run() {
		// 实现Runnable接口的,无法直接使用getId(),getName()等方法         
		// 需要使用Thread.currentThread() 来获取到当前对象才行 
		System.out.println("线程id:" + Thread.currentThread().getId());
		System.out.println("线程名称:" + Thread.currentThread().getName());
		for (int i = 0; i < 100; i++) {
			System.out.println("线程id:" + Thread.currentThread().getId() + "线程名称:" 
		+Thread.currentThread().getName()+ "线程优先级:" 
		+ Thread.currentThread().getPriority());
		}
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值