当前位置:
首页 >
线程的创建与启动——Thread 类有两个常用的构造方法:Thread()与 Thread(Runnable)||多线程运行结果是随机的
发布时间:2025/4/16
40
豆豆
生活随笔
收集整理的这篇文章主要介绍了
线程的创建与启动——Thread 类有两个常用的构造方法:Thread()与 Thread(Runnable)||多线程运行结果是随机的
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
线程的创建与启动
在 Java 中,创建一个线程就是创建一个 Thread 类(子类)的对象(实例).
Thread 类有两个常用的构造方法:Thread()与 Thread(Runnable).对应的创建线程的两种方式:
定义 Thread 类的子类
定义一个 Runnable 接口的实现类
这两种创建线程的方式没有本质的区别
Mythread.java
package com.dym.juc; /** 1) 定义类,继承Thread* */ public class Mythread extends Thread{// 2)重写run方法// run() 方法体中的代码就是子线程要执行的任务@Overridepublic void run() {System.out.println("这个是子线程打印的内容");} }MyThreadTest.java
package com.dym.juc;public class MyThreadTest {public static void main(String[] args) {System.out.println("JVM 启动main线程,mian线程执行mian方法");//3)创建子线程对象Mythread thread = new Mythread();//4)启动线程thread.start();/** 调用线程的start()方法来启动线程,* 启动线程的实质就是请求JVM运行相应的线程* 这个线程具体在什么时候运行由线程调度器(scheduler)决定*注意:start()方法调用结束 并不意味这子线程开始运行* 新开启的线程会执行run方法* 如果开启了多个线程,start()方法调用顺序并不一定就是线程启动的顺序* 多线程的运行结果与代码的执行顺序或调用顺序无关* */System.out.println("main线程后面其他的代码……");} }多线程运行结果是随机的
Mythread2.java
package com.dym.juc;public class Mythread2 extends Thread{@Overridepublic void run() {for (int i = 1; i <=10 ; i++) {System.out.println("sub thread:"+i);int time= (int) (Math.random()*1000);try {Thread.sleep(time); //线程睡眠,单位是毫秒} catch (InterruptedException e) {e.printStackTrace();}}} }MyThreadTest2.java
package com.dym.juc;/* * 演示线程运行结果的随机性 * */ public class MyThreadTest2 {public static void main(String[] args) {Mythread2 mythread2 = new Mythread2();mythread2.start(); //开启了子线程//当前是main线程for (int i = 1; i <=10 ; i++) {System.out.println("main:"+i);int time= (int) (Math.random()*1000);try {Thread.sleep(time); //线程睡眠,单位是毫秒} catch (InterruptedException e) {e.printStackTrace();}}} }总结
以上是生活随笔为你收集整理的线程的创建与启动——Thread 类有两个常用的构造方法:Thread()与 Thread(Runnable)||多线程运行结果是随机的的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 线程概述
- 下一篇: 实现Runnable接口的形式创建线程