Java开发基础-线程-线程创建有两种方式之一[继承Thread]

  1. 继承Thread并重写run方法 
   下面通过简单实例演示
    线程1
  • class MyThread1 extends Thread{
    
    	/**
    	 * run方法用来定义线程要执行的任务
    	 */
    	@Override
    	public void run() {
    		for (int i = 0; i < 1000; i++) {
    			System.out.println("你是谁啊?");
    		}
    	}
    	
    }
    线程2 
    class MyThread2 extends Thread{
    
    	@Override
    	public void run() {
    		for(int i=0;i<1000;i++){
    			System.out.println("我是查水表的!");
    		}
    	}
    	
    }
    线程测试:
    public class ThreadDemo1 {
    	
    	public static void main(String[] args) {
    
    		/*
    		 * 启动线程应当使用线程的start方法,而不是
    		 * 直接调用run方法。
    		 * start方法会快速的执行完毕,作用是将线程
    		 * 纳入线程调度,使其具有并发执行的能力.
    		 * 一旦线程获取CPU时间片开始运行时,会自动
    		 * 调用自己的run方法.
    		 * 需要注意,在概念上不能理解为调用start方法
    		 * 时run方法被执行,而是start方法执行完毕后
    		 *该线程的run方法会很快的被执行(一旦获取时间片)
    		 */
    		MyThread1 t1 = new MyThread1();
    		MyThread2 t2 = new MyThread2();
    		
    		t1.run();
    		t2.run();
    //		t1.start();
    //		t2.start();
    	}
    
    }
    注意点:线程启动应调用其start法,如果直接调用run方法会使线程失去并发执行能力。
  • /**
     * 方式一创建线程的优点:
     * 定义简单,适合匿名内部类快速创建线程
     * 
     * 缺点:
     * 1.由于java是单继承的,这就导致继承了Thread就不能
     * 在继承其他的类,在项目中拓展性差。
     * 2.由于将线程执行的任务定义在线程的run方法中,导致
     * 线程与任务有一个强耦合关系,不利于线程重用.
     */



猜你喜欢

转载自blog.csdn.net/coder_boy_/article/details/80369591