java多线程:
线程:程序单个执行的顺序流。
PC(Program Counter)程序计数器。永远指向当前正在运行指令的下一条指令
java里每个类都能实现多线程。实现有两种方式(重点):
1.继承Thread类
2.实现Runnable接口
线程的生命周期:
1.新建状态
Thread t1=new subThread();//就是创建线程对象,在堆里有内存
2.就绪状态
满足执行的所有条件,只是没有CPU
3.运行状态
拥有CPU,正在执行的,如果一个计算机只有一个内核,那么同一时刻只有一个线程处于运行状态。
4.阻塞状态
运行的线程遇到某些问题(sleep、wait)。
5.死亡状态
执行完run()方法,线程自动消亡。
线程同步
多个线程访问同一块内存里的数据,同一时刻共享数据只能被一个线程访问,否则会出问题。解决办法:在方法声明中加synchronized关键字。典型案例(生产者\消费者)。 |
|