初始多线程
实现多线程的方法
- 继承Thread类(重点)
- 实现Runnavle接口(重点)
- 实现Caliable接口(了解,以后可能会学习到!)
多线程分两种 进程 和 线程
进程
每一个程序都是静态的,当程序运行起来那么它就会进入一个进程的状态
每个进程都算是一个单位
线程
1个进程包括若干个线程
线程是程序中执行的线程。Java虚拟机允许应用程序同时执行多个线程
每个线程都是右优先权。具有较高优先级的线程先于优先级较低的线程。每个线程可能也可能不会标记为守护线程。当在某个线程中运行的代码创建一个新的Thread对象时,新线程的优先级最初设置为等于创建线程的优先级,平且当且仅当创建线程是守护进程时才是守护线程
我们目前所观察到或者所了解到的只有一个main方法,它是一个主线程。
代码示范
package com.xhlin.demo01;
/**
* 线程执行不一马上执行,而是由CPU调度
*/
public class TestThread1 extends Thread {
@Override
public void run() {
//run 方法线程体
for (int i = 0; i < 20; i++) {
System.out.println("我在看代码---"+i);
}
}
public static void main(String[] args) {
TestThread1 thread = new TestThread1();
// 开启线程
thread.run();
//主线程 main
for (int i = 0; i < 2000; i++) {
System.out.println("我在看王木木---"+i);
}
}
}
它是优先把run()方法执行完毕,然后继续执行main里面的for循环
而我们使用了调用Thread里面的 start的方法
package com.xhlin.demo01;
/**
* 线程执行不一马上执行,而是由CPU调度
*/
public class TestThread1 extends Thread {
@Override
public void run() {
//run 方法线程体
for (int i = 0; i < 200; i++) {
System.out.println("我在看代码---"+i);
}
}
public static void main(String[] args) {
TestThread1 thread = new TestThread1();
// 开启线程
thread.start();
//主线程 main
for (int i = 0; i < 200; i++) {
System.out.println("我在看王木木---"+i);
}
}
}