进程;每一个应用都是一个进程;CPU负责调度
线程:每一个进程中可以有一个或多个线程,线程不是越多越好,线程数量和CPU内核有关,考量是任务执行时间
并行:(一边吃饭一边接电话 单核CPU不支持)
并发:(先接电话在吃饭)
线程具有生命周期,其中包含五种(七种)状态,分别为出生状态、就绪状态、运行状态、堵塞状态【等待状态、休眠状态、阻塞状态】、死亡状态。出生状态是用户在创建线程,就绪状态是线程进入Runnable状态等待CPU安排执行,运行状态是线程执行;堵塞状态,死亡状态,死亡后不能再次start开始线程;为了让线程死亡应该用while方法
sleep(休眠)方法不释放CPU资源
wait(等待)方法释放系统资源唤醒必须由notify或notifyALL唤醒
阻塞状态有三种状态,等待、休眠、阻塞
线程优先级为1——10,1优先级最低10优先级最高,默认是5
设置优先级setPriority()
线程锁(synchronize):防止资源被多次访问,synchronize(对象和自解码)同步静态方法是锁当前类的自解码对象,同步非静态方法是锁当前对象
锁的时候必须是同一个对象
同步代码块(在方法体内)
同步方法(方法命名)public synchronized void run{}
synchronized 同一个对象有两个同步方法当有多个线程访问,可不可以访问,,,不可以
一个类中一个同步静态方法,一个同步非静态方法,可不可以有多个线程访问、、、可以
一个类中ab方法都是静态方法,ab同步,不可以同时访问
锁同一个资源互斥
启动线程调用start方法还是run方法
调用start方法开启一个线程
只有Thread的实现对象才能调用start方法,