程序
可以理解为一组静态的代码
进程
正在进行的程序 静态的代码 运行起来
线程
正在执行程序中的小单元
1.主线程 系统线程
2.用户线程 main
3.守护线程(精灵) GC
线程------操作系统级别 CPU
如何在Java中创建线程 让线程执行 多线程
掌握每一个线程的几种不同状态 及状态之间如何切换
new start() cpu分配run() wait() exception over
创建线程----就绪状态-----执行状态-----等待/挂起------异常/死亡
| |
|________________________|
notify/notifyAll
实现线程的一种过程
1.自己描述一个类
2.继承父类Thread
3.重写run方法
4.new一个线程对象 调用start()方法 让线程进入就绪状态
实现线程的另一个过程
1.自己描述一个类
2.实现一个父类接口
3.重写run方法
4.new一个线程对象
在runnable实现线程的过程中如果先要调用Thread中的start方法
1.创建一个Thread对象 Thread t1 = new Thread(r1);
2.t1.start();
public class 售票口 extends Thread {
private int ticket=10;
private boolean flag=true;
public void run() { //重写run()方法
while(flag) {
try {
Thread.sleep(50); //让当前线程休眠0.05秒
}catch(Exception e) {
e.printStackTrace();//异常时打印异常信息在程序中出错的位置及原因
}
sale();
}
}
public synchronized void sale() {
if(ticket>0)
System.out.println(Thread.currentThread().getName()+"ticket="+ticket--);//Thread.currentThread()返回当前线程变量,又启动一个新的线程
}
}
public class 售票口显示 {
public static void main(String[] args) {
售票口 m=new 售票口();
for(char i='A';i<='C';i++) {
new Thread(m,"窗口"+i+"售票,").start();//Thread(m,"窗口"+i+"售票,") 第一个参数是thread2线程可以映射的线程,后面的String是新线程的名称。
}
}
}