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

本文介绍了通过继承Thread类并在其中重写run方法来创建线程的方法。通过两个示例线程展示了如何定义线程任务,并强调了应当使用start方法而非直接调用run方法来启动线程的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  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方法中,导致
     * 线程与任务有一个强耦合关系,不利于线程重用.
     */



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Coder_Boy_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值