线程的创建与启动——Thread 类有两个常用的构造方法:Thread()与 Thread(Runnable)||多线程运行结果是随机的
生活随笔
收集整理的這篇文章主要介紹了
线程的创建与启动——Thread 类有两个常用的构造方法:Thread()与 Thread(Runnable)||多线程运行结果是随机的
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
線程的創(chuàng)建與啟動(dòng)
在 Java 中,創(chuàng)建一個(gè)線程就是創(chuàng)建一個(gè) Thread 類(子類)的對(duì)象(實(shí)例).
Thread 類有兩個(gè)常用的構(gòu)造方法:Thread()與 Thread(Runnable).對(duì)應(yīng)的創(chuàng)建線程的兩種方式:
定義 Thread 類的子類
定義一個(gè) Runnable 接口的實(shí)現(xiàn)類
這兩種創(chuàng)建線程的方式?jīng)]有本質(zhì)的區(qū)別
Mythread.java
package com.dym.juc; /** 1) 定義類,繼承Thread* */ public class Mythread extends Thread{// 2)重寫run方法// run() 方法體中的代碼就是子線程要執(zhí)行的任務(wù)@Overridepublic void run() {System.out.println("這個(gè)是子線程打印的內(nèi)容");} }MyThreadTest.java
package com.dym.juc;public class MyThreadTest {public static void main(String[] args) {System.out.println("JVM 啟動(dòng)main線程,mian線程執(zhí)行mian方法");//3)創(chuàng)建子線程對(duì)象Mythread thread = new Mythread();//4)啟動(dòng)線程thread.start();/** 調(diào)用線程的start()方法來啟動(dòng)線程,* 啟動(dòng)線程的實(shí)質(zhì)就是請(qǐng)求JVM運(yùn)行相應(yīng)的線程* 這個(gè)線程具體在什么時(shí)候運(yùn)行由線程調(diào)度器(scheduler)決定*注意:start()方法調(diào)用結(jié)束 并不意味這子線程開始運(yùn)行* 新開啟的線程會(huì)執(zhí)行run方法* 如果開啟了多個(gè)線程,start()方法調(diào)用順序并不一定就是線程啟動(dòng)的順序* 多線程的運(yùn)行結(jié)果與代碼的執(zhí)行順序或調(diào)用順序無關(guān)* */System.out.println("main線程后面其他的代碼……");} }多線程運(yùn)行結(jié)果是隨機(jī)的
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;/* * 演示線程運(yùn)行結(jié)果的隨機(jī)性 * */ public class MyThreadTest2 {public static void main(String[] args) {Mythread2 mythread2 = new Mythread2();mythread2.start(); //開啟了子線程//當(dāng)前是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();}}} }總結(jié)
以上是生活随笔為你收集整理的线程的创建与启动——Thread 类有两个常用的构造方法:Thread()与 Thread(Runnable)||多线程运行结果是随机的的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 线程概述
- 下一篇: 实现Runnable接口的形式创建线程