Logo

郎哥编程

Thread类创建线程

2019-12-31 177

创建一个线程可以使用Thread类,Thread类定义了多个构造方法,常用的构造方法如下:

●   public Thread(String name)

该构造函数创建一个名称为name的线程。

●   public Thread ()

该构造函数创建一个没有命名的线程。

在程序中需要创建线程时,一般会创建Thread类的子类,子类会重写Thread类的run()方法,线程功能的代码需要写入到run()方法中,然后再调用Thread类的start()方法来执行线程,start()方法会调用run()方法,执行run()方法内的线程代码。

案例1:建立Thread类的子类MyThread类,重写Thread类run()方法。

新建项目PCoreUnit7,在PCoreUnit7项目新建thread包,在thread包下新建MyThread类。代码如下:

package thread;
 
/** 
* @ClassName: MyThread 
* @Description: 多线程操作(使用Thread类创建线程)案例1
* @author 编程训练营 
* @date 
* 
*/
 
public class MyThread extends Thread {
 
    /**
    * <p>Title: run</p> 
    * <p>Description: </p>   
    * @see java.lang.Thread#run() 
    */ 
   
    @Override
    public void run() {
       // TODO Auto-generated method stub
       super.run();
       // 在线程中执行的代码
       for( int i = 0; i<100; i++ ) {
           System.out.println("MyThread:" + i);
       }
 
    }
   
}

MyThread类继承Thread类,并重写了Thread类的run()方法。在run()方法内部编写线程要执行的代码。

在thread包下新建MyThreadTest测试类,启动MyThread线程。代码如下:

package thread;
 
/** 
* @ClassName: MyThreadTest 
* @Description: 多线程操作(使用Thread类创建线程)案例1 
* @author 编程训练营 
* @date 
* 
*/
 
public class MyThreadTest {
 
    /** 
    * @Title: main 
    * @Description: Java程序入口main方法  
    * @param @param args    参数 
   
    * @return void    返回类型 
    * @throws 
    */
 
    public static void main(String[] args) {
       // 实例化MyThread对象
       MyThread  thread = new MyThread();
       // 调用Thread类的strat()方法启动线程
        thread.start();
    }
 
}

MyThreadTest程序启动后,Java虚拟机会为该程序创建一个主线程,main()方法就是在主线程上运行的。如果在main()方法中没有再启动其它线程,该程序就是单线程,当在main()方法中启动了其它线程,该程序就是多线程。

在MyThreadTest程序的主方法中,实例化MyThread对象并调用了Thread类的start()方法,MyThread线程被启动。这是MyThreadTest程序有两个线程在运行,一个线程是主线程,一个线程是实例化的MyThread线程。

程序执行结果如下图所示:

image.png

代码在线纠错(通义千问 qwen-max)

支持粘贴多个代码文件,提交后由阿里云通义千问自动分析代码漏洞、语法错误、逻辑问题并给出修改建议。
您已解锁 AI 代码纠错功能,可正常使用!

评论区

登录 后发表评论
暂无评论