Java多线程的实现方式

线程的实现方式

1:Runnable接口

接口中 只有一个run()抽象方法,让继承者重写,当run()被重写后,会被分派一个线程用来独立运行。 Runnable一旦继承与Thread类同级别 可以有Thread类中的所有方法 也可以自定义方法。他更适合在资源共享的情况下,例如 多人抢一口井水喝。
**注:**多人抢在低速轮换下感觉不是同步,但是在高速轮换情况下让观看者认为他们在同时喝水(计算机起到高速轮换的作用)达到并发执行的效果,只是效果,不是正真的同步。同步执行在一台机器有多个处理器,多个处理器同时执行喝水,达到并行执行,相当于有多口井,多人喝。

2:Thread类

Thread 类继承了Runnable接口
1:在Thread类中实现了 Thread的一系列有参无参构造器,用例实例化不同格式的线程
2:实现了yiled()、sleep()、start()等本地方法和interrupt()打断方法,优先级设定setPriority(),setName() ,getName() join()等方法,实现线程的线程让步
3:重写了run()方法

//重写接口Runnable中的 run()方法
@Override
    public void run() {//Thread(target....)
        if (target != null) {
            target.run();
        }
    }
//如果目标对象不为空就执行run()方法

3:Callable接口

callable 有返回值 是个泛型接口 在其中一个call()方法用来被继承实现线程。他可以抛出异常。在新建的线程中要传入被调用的线程执行对象时需要借助FutureTask任务泛型对象 ,之后向线程对象中传入任务 task

public interface Callable<V> {
    /**
     * Computes a result, or throws an exception if unable to do so.
     *
     * @return computed result
     * @throws Exception if unable to compute a result
     */
    V call() throws Exception;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值