1.基础概念
1.程序
一段可执行的代码,并且拥有某些属性,可以实现某种功能。
2.进程
进程类似于程序,一个进程可以实现多个任务。
3.线程
线程类似于任务,函数,一个进程由多个线程组成。
4.并行
多个线程同时运行,互不影响,它们之间是并行关系。
5.并发
即一段时间具有并行关系的多个线程执行的任务总数。
2.创建线程过程
1.创建thread子类继承thread类,重写run方法。
public class ThreadBall extends Thread{
//重写run方法:启动线程执行的方法
//run方法执行完,该线程结束
/*
public void run() {
if (target != null) {
target.run();
}
}
*/
public void run(){
while (true){ //死循环
try {
Thread.sleep(1000); //延时函数
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("线程名:"+this.getName());
g.setColor(Color.black);
g.fillOval(x++,y++,50,50);
g.setColor(color);
System.out.println("color的颜色"+color);
g.fillRect(x,y,80,80); //用矩形覆盖小球
}
}
2.创建thread子类对象调用start()方法,自动调用重写的run函数。
public void actionPerformed(ActionEvent e) { //按钮被按下触发函数
//创建线程对象
ThreadBall tb = new ThreadBall(g, color);
System.out.println("sadsdaasd"+color);
//启动线程:每个线程对象只能启动一次
tb.start();
System.out.println("没用的");
}
3.线程的生命周期
1.启动状态(New):尚未启动的线程处于这种状态
2.可运行状态(Runnable):当调用start方法后,线程处于运行状态
3.阻塞(blocked):受阻塞并等待某个监听器运行权限的线程处于这个状态
4.等待状态(waiting):当前线程有运行权限,正在等待前面线程运行完,当等待时间结束后,该线程运行
5.超时等待(time_waiting):超过等待时间,当前线程自动运行
6.终止状态:线程run函数结束,运行结束
线程生命周期如下图所示: