java线程(基础)
程序:可以理解为是一组静态的代码
进程:正在进行的程序 静态的代码 运行起来
线程:正在执行程序中的小单元
1.主线程 系统线程
2.用户线程 main
3.守护线程(精灵) GC
线程------操作系统级别 CPU
如何在Java中创建线程 让线程执行 多线程
掌握每一个线程的几种不同状态 及状态之间如何切换
new start() CPU分配run() wait() exception over
创建线程------就绪状态------执行状态------等待/挂起------异常/消亡
|___________________________|
notify/notifyAll
实现线程的过程有两种方法
一、继承父类Thread
简单例子:
public class TestThread extends Thread {
/*
实现线程的过程
1.自己描述一个类
2.继承父类Thread
3.重写run方法
4.new一个线程对象 调用start()方法 让线程进入就绪状态
*/
private String contestant;
private int number;
public TestThread() {
}
public TestThread(String contestant, int number) {
this.contestant = contestant;
this.number = number;
}
public String getContestant() {
return contestant;
}
public void setContestant(String contestant) {
contestant = contestant;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public void run() {
for (int i = 1; i <= 100; i++) {
System.out.println("参赛人:" + contestant + "\t编号:" + number + "\t第" + i + "次");
}
}
}
二、实现一个父接口Runnable
public class TestThreadOther implements Runnable {
/* 实现线程的过程
1.自己描述一个类
2.实现一个父接口Runnable
3.重写run方法
4.new一个线程对象 需要创建Thread将自己的对象包起来 然后调用start()
*/
private String contestant;
private int number;
public TestThreadOther() {
}
public TestThreadOther(String contestant, int number) {
this.contestant = contestant;
this.number = number;
}
public String getContestant() {
return contestant;
}
public void setContestant(String contestant) {
this.contestant = contestant;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
@Override
public void run() {
for (int i = 1; i <= 100; i++) {
System.out.println("参赛人:" + contestant + "\t编号:" + number + "\t第" + i + "次");
}
}
}