java二期_JAVA基础之多线程二期
一、主線程
public class MainThread {
/**
* 主線程:指執行main()方法的線程,且該線程是單線程,從上到下執行
* JVM執行main()方法時,JVM會將main()方法放入到棧內存中執行,
* 同時CPU會為main()方法開辟一條執行路徑,該路徑名稱就是主線程
*
* @param args
*/
public static void main(String[] args) {
Persion p1 = new Persion("小強");
p1.run();
Persion p2 = new Persion("秦問天");
p2.run();
}
}
二、創建線程的兩個方式
方式1:繼承Thread類
步驟:
A、繼承Thread類,并重寫該類的run()方法,該run()方法的方法體就代表了線程需要完成的任務,因此把 run()方法稱為線程執行體。
B、創建Thred子類實現,既是創建線程對象
C、線程對象調用start()方法來開啟線程
測試:
public class Demo2 {
public static void main(String[] args) {
MyThread my = new MyThread("秦問天");
my.start();
for (int i = 1; i <= 20; i++) {
System.out.println("main()....."+i);
}
}
}
自定義線程類:
public class MyThread extends Thread {
private String name;
public MyThread() {}
public MyThread(String name) {
this.name = name;
}
@Override
public void run() {
for (int i = 1; i <= 20; i++) {
System.out.println(this.name+"......<===>..."+i);
}
}
}
三、Thread類
構造方法:
public?Thread() :分配一個新的線程對象。
public?Thread(String?name) :分配一個指定名字的新的線程對象。
public?Thread(Runnable?target) :分配一個帶有指定目標新的線程對象。
public?Thread(Runnable?target,String?name) :分配一個帶有指定目標新的線程對象并指定名字
常用方法:
public?String?getName() :獲取當前線程名稱。
public?void?start() :導致此線程開始執行; Java虛擬機調用此線程的run方法。
public?void?run() :此線程要執行的任務在此處定義代碼。
public?static?void?sleep(long?millis) :使當前正在執行的線程以指定的毫秒數暫停(暫時停止執行)。
public?static?Thread?currentThread() :返回對當前正在執行的線程對象的引用
四、創建線程的方式二
步驟如下:
1. 定義Runnable接口的實現類,并重寫該接口的run()方法,該run()方法的方法體同樣是該線程的線程執行體。
2. 創建Runnable實現類的實例,并以此實例作為Thread的target來創建Thread對象,該Thread對象才是真正 的線程對象。
3. 調用線程對象的start()方法來啟動線程。
測試:
public class MyRunnable implements Runnable {
private String name;
public MyRunnable(String name) {
this.name = name;
}
public void run() {
for (int i = 1; i <=21; i++) {
System.out.println(Thread.currentThread().getName()+"..<===>.."+i);
}
}
}
public class MyRunableTest {
public static void main(String[] args) {
MyRunnable myRunnable = new MyRunnable("張小凡");
//th對象才是真正的線程對象,葉凡才是真正的線程名
Thread th = new Thread(myRunnable,"葉凡");
th.start();
for (int i = 0; i <=21; i++) {
System.out.println("main().."+i);
}
}
}
總結
以上是生活随笔為你收集整理的java二期_JAVA基础之多线程二期的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: docker 删除image_如何用两个
- 下一篇: c语言中执行一次的函数once,iOS只