进程指的是一个应用程序,线程指的是进程中的一个执行分支。
创建线程的两种方法:1、继承Thread方法 2、实现Runnable接口
线程的执行 Thread.start();
线程的状态 1.创建线程; 2Thread.start(); 3线程的就绪状态 4运行状态 5阻塞状态 6 解除阻塞状态 7终止
线程中的方法
join() 合并线程
isActive() 是否活动状态 除了创建和终止状态 都是活动状态
getPriority() 获取线程优先级
setPriority() 设置线程优先级 最小1 最大10
yield() 转让cpu的持有一次。
关键字:
synchronized 互斥锁
互斥锁一般加载方法上,意思是对改方法的对象加锁。锁的是对象。
sleep() 让线程睡眠一段时间,释放cpu的占用,但是仍然对对象持有锁
wait() 让线程进入停止执行状态,再次执行需要唤醒。释放对象锁。
notify() 唤醒一个等待中的线程。
线程同步
1.互斥锁 在方法上,或者方法体内加上synchronized
2.同步代码块 使用 synchronized
3.volatile 是一种免锁机制 使用volatitle相当于告诉虚拟机,该域可能会被线程更新。每次使用该值,都是重新计算。而不是使用寄存器中的值。不能用来修饰final的变量
4.使用重入锁实现线程同步
ReentrantLock() 获取实例
lock();获取锁 unlock()释放锁
5.ThreadLocal() 一种锁的隔离,创建一个线程的副本来执行线程。使线程间相互不影响。