Java中 实现多线程成的三种方式(继承,实现,匿名内部类)
------------------------------------------------------------------------------------------------------------
- /** 第一种方式:继承Thread类
- * 1. 定义一个类,然后让该类继承Thread类
- * 2. 重写run方法
- * 3. 创建定义的这个类的对象
- * 4. 启动线程
- */
- //继承Thread类
- public class MyThread extends Thread{
- public MyThread() {}
- public MyThread(String name) {
- super(name);
- }
- //run方法中封装的应该是要被线程执行的代码 ,run方法中代码的原则,一般存方的都是比较耗时的代码
- public void run (){
- for (int i = 0; i < 200; i++) {
- System.out.println(Thread.currentThread().getName() + "---" + i);
- }
- }
- }
- //测试方法
- private static void Test() {
- // 创建对象
- MyThread mt1 = new MyThread();
- MyThread mt2 = new MyThread();
- //启动线程
- // public void start()使该线程开始执行;Java 虚拟机调用该线程的 run 方法。
- mt1.start();
- //mt1.start();// 线程的启动只能是一次
- mt2.start();
- }
------------------------------------------------------------------------------------------------------------
- /** 第二种方式:实现Runnable接口
- 避免了单线程带来的困扰
- * (1): 创建一个类,让该类实现Runnable接口
- * (2): 重写run方法
- * (3): 创建该类的对象
- * (4): 创建Thread类的对象,然后把3中的对象作为参数传递给Thread
- * (5): 启动线程
- */
- //实现Runnable接口
- public class MyThread2 implements Runnable {
- public MyThread2() {
- super();
- }
- public void run() {
- for(int x = 0 ; x < 200 ; x++){
- System.out.println(Thread.currentThread().getName() + "---" + x);
- }
- }
- }
- //测试方法
- private static void Test2() {
- // 创建MyThread的对象
- MyThread2 mt = new MyThread2();
- // 创建Thread类的对象,然后把3中的对象作为参数传递给Thread
- // public Thread(Runnable target)
- Thread t1 = new Thread(mt,"张飞");
- Thread t2 = new Thread(mt,"关羽");
- Thread t3 = new Thread(mt,"刘备");
- // 启动线程
- t1.start() ;
- t2.start() ;
- t3.start() ;
- }
------------------------------------------------------------------------------------------------------------
- /** 第三种方式:使用匿名内部类的方式实现
- 很少见
- * new 类名/接口名() {
- * 方法重写 ;
- * } ;
- */
- //测试方法
- //匿名内部类
- @Test
- private static void Test3() {
- new Thread() {
- public void run() {
- System.out.println("线程执行了。。。。。。。");
- }
- }.start();
- }
------------------------------------------------------------------------------------------------------------
Java中 实现多线程成的三种方式(继承,实现,匿名内部类)的更多相关文章
- Java中从控制台输入的三种方式
我们最熟悉的从控制台读取一个字符或者一个字符串都知道用Scanner,那么除了Scanner还有没有其他的呢,答案是有的,我们来看看. System.in.read() System.in.read( ...
- JAVA中使用LDAP登录的三种方式
搜索中关于java 登录ldap,大部分会采用 cn=xxx,ou=xxx,dc=xxx的方式,此处的cn是用户的Display Name,而不是account,而且如果ou有多层,比如我们的OU就 ...
- 如何实现有返回值的多线程 JAVA多线程实现的三种方式
可返回值的任务必须实现Callable接口,类似的,无返回值的任务必须Runnable接口.执行Callable任务后,可以获取一个Future的对象,在该对象上调用get就可以获取到Callable ...
- Java中获取键盘输入值的三种方法
Java中获取键盘输入值的三种方法 Java程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值 ...
- Java反射获取class对象的三种方式,反射创建对象的两种方式
Java反射获取class对象的三种方式,反射创建对象的两种方式 1.获取Class对象 在 Java API 中,提供了获取 Class 类对象的三种方法: 第一种,使用 Class.forName ...
- 在Tomcat中部署web项目的三种方式
搬瓦工搭建SS教程 SSR免费节点:http://www.xiaokeli.me 在这里介绍在Tomcat中部署web项目的三种方式: 1.部署解包的webapp目录 2.打包的war文件 3.Man ...
- Tomcat中部署web应用的三种方式
Tomcat中部署web应用的三种方式(静态部署) 第一种,针对war或解压后的war,最为常用的是直接操作webapp目录,将完整的war包或者web应用直接放到webapp目录下.使用 ...
- spring中创建bean对象的三种方式以及作用范围
时间:2020/02/02 一.在spring的xml配置文件中创建bean对象的三种方式: 1.使用默认构造函数创建.在spring的配置文件中使用bean标签,配以id和class属性之后,且没有 ...
- 【java多线程】多线程的创建三种方式--笔记
申明:线程的概念以及进程的相关概念,可以参考网络上其他资料,这里只讨论多线程是怎么实现. 一.多线程的简单理解 明白什么是多线程,小生通俗一点的理解为:在一个程序里,我想同时让这个程序完成多个任务. ...
随机推荐
- Javascript与ECMAScript
我们经常习惯性认为Javascript就是ECMAScript,但其实不是这样的. ECMAScript是一种脚本在语法和语义上的标准. 主要包括:语法.类型.语句.关键字.保留字.操作符.对象. 它 ...
- UWP开发之Mvvmlight实践一:如何在项目中添加使用Mvvmlight(图文详解)
最近一直在做UWP开发,为了节省成本等等接触到MVVMlight,觉得有必要发点时间研究它的用法与实现原理才行.如果有问题的地方或者有好的建议欢迎提出来. 随着移动开发的热门,Mvvmlight在An ...
- 高级javascript---严格模式
严格模式 (JavaScript) 严格模式是一种将更好的错误检查引入代码中的方法. 在使用严格模式时,你无法使用隐式声明的变量.将值赋给只读属性或将属性添加到不可扩展的对象等. 本主题后面的代码 ...
- iOS 使用xib后获取view的frame出错的问题
如果控制器使用xib做的,在viewDidLoad方法中获取的view.frame是不正确的 这根xib的加载有关, 可以把需要做的事情写在viewWillAppear中就能解决
- DOM 节点的克隆与删除
无奈的开头 关于DOM节点操作,如果仅仅是根据标准API来操作,那是最简单不过的了.但是现实中却哪有这么容易的问题让我们解决,其实不仅仅是节点的克隆与删除,节点的添加也是如此,而且添加节点需要考虑的情 ...
- 原创:从零开始,微信小程序新手入门宝典《一》
为了方便大家了解并入门微信小程序,我将一些可能会需要的知识,列在这里,让大家方便的从零开始学习:一:微信小程序的特点张小龙:张小龙全面阐述小程序,推荐通读此文: 小程序是一种不需要下载.安装即可使用的 ...
- C语言实现控制台中光标随意移动
开始准备学习下C,新手哦~~ 今天弄了个控制台程序,光标可以随意在DOS下移动~~ 先放一张效果图,不过很丑,大家能不能看懂,哈哈,就是 I Love You. 代码注释都有,其实好多东西我都是从其他 ...
- 【JUC】JDK1.8源码分析之ReentrantLock(三)
一.前言 在分析了AbstractQueuedSynchronier源码后,接着分析ReentrantLock源码,其实在AbstractQueuedSynchronizer的分析中,已经提到过Ree ...
- 轻量级OLAP(一):Cube计算
有一个数据多维分析的任务: 日志的周UV: APP的收集量及标注量,TOP 20 APP(周UV),TOP 20 APP标注分类(周UV): 手机机型的收集量及标注量,TOP 20 机型(周UV),T ...
- rem、em、px的区别
px 像素(Pixel).相对长度单位.像素px是相对于显示器屏幕分辨率而言的. 特点: 1. IE无法调整那些使用px作为单位的字体大小: 2. 国外的大部分网站能够调整的原因在于其使用了em或re ...