JAVA基础之多线程二期
Posted 暮尘时雨
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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基础之多线程二期的主要内容,如果未能解决你的问题,请参考以下文章