Java线程Thread、线程组ThreadGroup、线程池简单总结

本文总结了Java中的线程和线程池概念,包括Thread类的构造方法、ThreadGroup的常用方法,以及Executors工厂类创建的线程池类型如newCachedThreadPool、newFixedThreadPool等。还介绍了ExecutorService和ScheduledExecutorService在管理线程池和调度任务执行中的作用。
摘要由CSDN通过智能技术生成
一.线程的相关概念与理解
参考笔记: 进程、线程的理解 
二.线程的五种状态
1.新建:创建过程
2.就绪状态:创建好了,可以运行了
3.运行状态:代码处理逻辑正在运转中
4.死亡状态:逻辑执行完了,主动死亡;或者出现异常问题,被动死亡。
5.阻塞状态:其实就是暂停,因为一些原因需要暂停逻辑执行,可能的情况有:
                      1)主动暂停,sleep()睡眠指定的一段时间,睡完继续执行代码逻辑
                      2)被动暂停,需要调用的资源被其它线程占了,或者资源正在分配中,没办法只能等待;
                                              或者互斥锁被其它线程占有,等待获得互斥锁拥有权(若把锁也看做一种资源,广义来看,还是资源被占)。
线程状态具体参考剪藏:
      线程的五大状态 - peter_teng的专栏 - 博客频道 - CSDN.NET
在Java中对应的状态转换图:
三.创建Java线程的三种方式:
&&.1、calss MyThread extends Thread
构造方法:
new MyThread();
new MyThread( String name ); //指定名称,可通过getName()方法,获取传入的name值。
启动方法:
start() :  会触发Thread的生命周期,注意,一个线程对象只能调用一次start()方法,在生命周期未结束前,多次调用会报错。
          
&&.2、calss MyRunnable implements Runnable
个人感觉:Runnable方式一大用处是,若想把线程执行的逻辑写在某个类中,但该类本身已经有父类时,此时该类无法再继承Thread类,但可以引用Runnable接口呀。因为Java类只能有一个父类,但可以引用自多个接口。
(java类只能extends一个父类,可以implements多个接口,java接口可以extends多个其它接口)
Java中Thread类本身就implements Runnable接口,其run()也是继承自Ruannable接口。
相关源码:
Runnable接口中的run():
public interface Runnable {
     public abstract void run();
}
Thread类中的run():
@Override
    public void run() {
        if (target != null) {
            target.run();
        }
}
创建过程:
1. MyRunnable myRunnable = new MyRunnable();//创建一个Runnable线程实例
2. Thread thread = new Thread( myRunnable );//创建一个Thread对象,上面的Runnable线程实例作为target传入Thread对象
                                            //根据Thread类run()的源码,上面thread.run()会触发myRunnable.run()
&&.3、使用Callable和FutureTask创建线程(好处在于可以获取返回的线程执行结果)
简单说明:
    开发者可以在Callable实例的call()方法中写返回值,这个返回值可以通过包装它的FutureTask实例获取到。
    具体依赖与包装关系为:
            FutureTask实例能够包装Callable实例。
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值