并行 与并发
并行:多个CPU同时执行多个任务,
并发:一个CPU(采用时间片)同时执行多个任务
多线程
一、背景
二、优点
1、提高计算机程序的响应,对图形化界面更有意义,可增强用户体验。
2、提高计算机系统CPU的利用率
3、改善程序结构。将即长又复杂的进程分为多个线程,独立运行,有利于理解和修改。
三、线程的调度
1、线程优先级 最大 10 最小 1 正常 5 Thread类中有
四、线程的同步
1、代码同步
方式一、同步代码块
synchronized(同步监视器){
//1、需要被同步的代码快 操作共享数据的代码
//2、共享数据 多个线程共同操作的变量
//3、同步监视器:锁 任何一个类的对象都可以充当锁
//要求多个线程必须要共用一把锁。
}
方式二、同步方法
方式三、lock
五、方法
了解一下 Thread 方法
1)public void start() 使该线程开始执行, java 虚拟机调用该线程的run 方法
2)public void run() 如果实现使用Runnable 运行对象构造的,则你应该用实现Runnable对象的run方法
3)public final void setName(String name) 设置线程名称
4)public final void setPriority(int priority) 设置线程的优先级
5)public final void setDaemon(boolean on) 将该线程标记为守护线程或用户进程
6)public final void join(long millisec) 等待该线程终止的时间最长为mills 毫秒
7)public void interrupt() 中断线程
8)public final boolean isAlive() 测试线程是否处于活动状态
1) public static void yield() 暂停当前正在执行的线程对象,并执行其他线程。
2) public static void sleep(long millisec) 指定的毫秒数内让当前正在执行的线程休眠(暂停执行),此操作受到系统计时器和调度程序精度和准确性的影响。
3) public static boolean holdLock(Object x) 当前仅当当前线程在指定的对象上保持监视器锁时, 才返回true
4) public static Thread currentThread() 返回当前正在进行的线程对象的引用
5)public static void dumpStack() 将当前线程的堆栈跟踪打印至标准错误流