虽然微不足道但是很有用的JAVA基础—线程一

进程 系统进行资源分配和调度的基本单位。
线程 偶尔也称作轻量级进程,是程序执行的最小单元。
一个进程中至少有一个线程。
一个线程可以操作另一个线程。
同一个进程中的多个线程可以并发执行。

线程的状态
1.初始状态:线程通过继承或者实现的方式初始化。
2.就绪状态:通过调用线程的start方法(线程中的run()只是一个普通的方法,调用run方法并不会启动一个线程)来启动线程,使线程进入就绪队列,即此时的线程获取了除CPU以外的所有资源,只等待CPU的调用(CPU调用线程并不是按顺序的,即使某些线程有着价高的优先级,也只能说该线程被分配CPU的几率较大,并不代表高优先级一定会被调用)。
3.运行状态:处于就绪队列的线程被分配到CPU后开始执行,运行中的线程能够转换为阻塞,就绪以及死亡状态。
4.阻塞状态:该线程暂时放弃了CPU资源,暂停运行,但是当阻塞原因消失后线程能够重新恢复运行,造成线程阻塞的状态有以下几种(如果不对或者不全面,请大家指正)。
1.线程通过调用sleep()方法进入阻塞状态。
2.线程试图操作一个正在被使用的锁。
3.线程调用一个在I/O上被阻塞的操作,比如等待用户输入(System.in)。
4.线程调用wait()方法,直到其他线程调用了notify()或者调用了notifyAll()方法。
5.死亡状态:线程正常执行直到结束或者一个未被捕获的异常导致程序的停止。

线程的创建
1.继承Thread

public void myThread extends Thread{
    public void run(){
        //方法体
    }
}

2.实现Runable接口

public void myThread implements Thread{
    public void run(){
        //方法体
    }
}

3.实现Callable接口

public void myThread implements Callable<返回值类型>{
    public 返回值类型 Call(){
        //方法体
    }
}

相对于继承以及实现来说,我会选择实现的方式来创建一个线程,因为Java是单继承多实现。
相对于Runable以及Callable方法,当我们的线程需要有返回值或者需要抛出异常的话,就需要实现Callable。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值