JAVA基础之多线程二期
2021-04-11 21:35
标签:long string for 开始 名称 ati ext 正在执行 targe 一、主线程 二、创建线程的两个方式 三、Thread类 四、创建线程的方式二 JAVA基础之多线程二期 标签:long string for 开始 名称 ati ext 正在执行 targe 原文地址:https://www.cnblogs.com/jock766/p/13358066.htmlpublic 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 ..."+i);
}
}
}
构造方法:
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 .."+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