------------------------------------------------------------------------------------------------------------    

   

  /**  第一种方式:继承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();
}

------------------------------------------------------------------------------------------------------------

最新文章

  1. java 日期转时间戳,时间戳转为日期
  2. 微信--获取access_token
  3. SharedPreferences保存数据
  4. SWIFT 通过字符串创建相关的类
  5. HDU 4046 Panda
  6. PHP5常量
  7. JFrome 登陆/注册/回显无数据库连接小程序
  8. ubuntu自动挂载windows分区和开机自动启动wallproxy
  9. Week 5a - Mouse input and more lists----learning notes
  10. VPS(Virtual Private Server 虚拟专用服务器)[转自百度]
  11. Git时光机穿梭之版本回退
  12. mysql用户管理和pymysql模块
  13. 逆水行舟 —— MyBatis
  14. webpack的总结
  15. nodejs在windows下的安装配置(使用NVM的方式)
  16. linux 修改文件类型
  17. 20181223 python 使用Beautiful Soup
  18. linux下更改时区
  19. hive操作
  20. BZOJ3544 [ONTAK2010]Creative Accounting

热门文章

  1. DDD 领域驱动设计-谈谈 Repository、IUnitOfWork 和 IDbContext 的实践(1)
  2. Tomcat创建HTTPS访问,java访问https
  3. Centos7下修改mysql5.6编码方式 解决网站中文显示问号
  4. String源码中的&quot;avoid getfield opcode&quot;
  5. 文件权限及chmod使用方法
  6. 【UWP开发】一个简单的Toast实现
  7. iOS页面间传值的一些方式总结
  8. 7.11 数据注解特性--InverseProperty
  9. HTML5小游戏之见缝插针
  10. 转载:《TypeScript 中文入门教程》 10、混入