1 基本概念
进程:操作系统运行的应用程序
线程:某个特定应用程序中不同的程序执行分之
// 程序执行的流向,只有一个流向或者说只有一个分支,也就是只有一个线程
//main() 分支,主分支
public class Test {
public static void main(String[] args) {
m1();
}
public static void m1() {
m2();
m3();
}
public static void m2() {
System.out.println("m2().....");
}
public static void m3() {
System.out.println("m3().....");
}
}
public class Test {
public static void main(String[] args) {
}
}
class MyThread3 extends Thread {
public void run() {
}
}
2 线程
场景:如果多段代码需要交替(平行)执行
生活中的动作:
行为 由第三方唤醒的 存在先后顺序
方法的调用
行为 由自身调用(监听)的 事件源上注册了一个事件 (GUI)
事件监听
行为 是平行发生的
线程
2.1 线程的定义
2.2 若干动作,平行执行
CPU把运行时间划分成若干时间片,交替执行若干动作,给人的视觉感觉就是
2.3 代码实现
分别把平行执行的若干工作定义到不同的线程类中
2.4 线程类怎么定义
2.4.1 继承父类Thread
public class Test {
public static void main() {
// new MyThread1().run(); 方法调用~!!不行
new MyThread1().start();
new MyThread2().start();
}
}
class MyThread1 extends Thread {
public void run() {
for (int i=0;i<500;i++) {
System.out.println("=======");
}
}
}
class MyThread2 extends Thread {
public void run() {
for (int i=0;i<500;i++) {
System.out.println("******");
}
}
}
2.4.2 实现Runnable接口
public class Test {
public static void main() {
MyThread1 mt1 = new MyThread1();
mt1.start();
MyThread2 mt2 = new MyThread2();
Thread t = new Thread(mt2);
t.start();
}
}
class MyThread1 extends Thread {
public void run() {
for (int i=0;i<500;i++) {
System.out.println("=======");
}
}
}
class MyThread2 implements Runnable{
public void run() {
for (int i=0;i<500;i++) {
System.out.println("******");
}
}
}