首页 > 编程知识 正文

java线程间通信的几种方法,Java结束线程的三种方法

时间:2023-05-05 15:29:20 阅读:18898 作者:2919

方式一:实现Runnable接口

publicclassrunnablestyleimplementsrunnable {

@Override

公共void run (}

system.out.println (run . runnable );

}

publicstaticvoidmain (字符串[ ] args ) {

newthread(newrunnablestyle () ).start );

}

}

继承方式Thread类

publicclassthreadstyleextendsthread {

@Override

公共void run (}

super.run (;

system.out.println(run.thread );

}

publicstaticvoidmain (字符串[ ] args ) {

new ThreadStyle ().start );

}

}

建议:使用Runnable方法创建线程

理由1 )从代码体系结构的角度看,具体任务(run方法)应该与“创建和执行线程机制(Thread类)”断开连接,runnable对象可以断开连接

理由2 )使用继承Thread的方式,每次尝试创建新任务时只能创建新的独立线程,其损失很大。 (例如,从开头创建线程,执行完成后再销毁。 如果线程任务实际上是在run方法中打印一行文本,则线程的实际工作可能没有线程创建销毁那么大。 (使用Runnable重新组合线程池可以大大减少这种损失。

原因继承Thread类后,Java语言不支持双继承,因此无法继承其他类,可扩展性受到限制。 通常优先考虑方法1 (实现1(runnbale接口方式)

源代码中的Run方法:

/* What will be run. */

私有运行目标;

@Override

公共void run (}

if (目标!=空) {

target.run (;

}

}

分析: target对象以我们的构建方式传递,然后初始化。

当我们使用Runnable方法时,target不等于null,然后执行Runnable对象的run方法。

如果使用Thread方法,子类将消除上面源代码的确定过程,并直接通过写有父类的run方法访问。

本质上都是执行我们的run方法,方法之一是在做出判断之后,执行传递的target对象的run方法,方法二是直接执行run方法。

面试:实现线程的两种方法

通常分为两个类别。 Oracle官方文档也是这么说的。 Runable接口和继承Thread类

加分回答:准确地说,只有一种方法可以创建线程,就是配置Thread类。 实现线程执行单元有两种方法

方法一:实现Runnable接口的run方法,将Runnable实例传递给Thread类,在Thread类中进行target判定,然后执行自定义Runnable类的run方法

方法重写Thread的run方法

本文地址: https://blog.csdn.net/Baidu _ 36216018/article/details/108865683

你想和很多网友交流吗?

点击这个留言吧!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。