多线程的概念:
其实一个任务就是一个线程,能够在一个程序内运行多线程的程序被称为多线程程序。
线程是存在于进程中的,
一个程序被称为一个进程,每个进程都有自己独立的一块内存空间,每个进程的内部数据和状态都是独立的。
同一进程中的线程共享内存空间和系统资源。
线程的创建:
1)继承Thread类 重写run方法。
public class ThreaDemo extends Thread{
public void run{
要执行的代码
}
}
2)通过实现Runnable接口来创建线程。
public class RunnableDemo implements Runnable
public void run{
要执行的代码
}
线程的生命周期:
1)新建状态: 当执行到new Thread 时
2)就绪状态: 调用start方法时
3)运行装态:调用run方法
4)中断状态:在运行时会有雨某种原因中断
5)死亡状态: 线程运行完,线程进入死亡状态
其中中断原因有一下几点:
1)由于优先级的原因不能抢到cpu(优先级高的有较大的几率获得cpu的青睐)
优先级最大为10级
最小为1级
默认为5级
2)使用sleep方法是线程休眠
3)线程由于等待一个I/O操作被阻塞
4)通过调用wait()方法使其线程等待
5)通过调用yield()方法是线程让出cpu控制权
线程同步:
当两个以上的线程需要访问同一个共享资源时,我们必须保证同一时间点只有一个线程能够存取共享资源,而运行这个目标的过程就称为同步.
同步锁:
snychronized