
并发编程
收集Java并发编程相关文章
艾比Abe
不要拒绝思考
展开
-
Java - 并发编程:同步方法的锁对象与锁竞争
并发编程:同步方法的锁对象与锁竞争1 示例描述2 同步方法的锁对象3 静态同步方法的锁对象 1 示例描述 示例:定义线程任务类如下所示: public class SynObj { public synchronized void showA(){ System.out.println("showA.."); try { Thread.sleep(3000); } catch (Interr原创 2020-11-01 23:22:50 · 241 阅读 · 0 评论 -
Java - 并发编程:线程状态
并发编程:线程状态一、线程状态概述二、Timed Wating(计时等待)三、Blocked(被阻塞)四、Waiting(无限等待)1. 案例描述2. 需求分析:需要哪些类?3. 代码实现 一、线程状态概述 当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态。在 API 中 java.lang.Thread.State 这个枚举给出了一个线程在整个生命周期中的6种线程状态,下表对这6种线程状态做了简要归纳 线程状态 导致状态发生的事件 New(新建) 线程刚被创建原创 2020-08-19 00:35:55 · 203 阅读 · 0 评论 -
Java - 并发编程:线程安全
并发编程:线程安全一、线程安全1. 多线程的潜在风险2. 线程不安全原因分析二、线程同步1. 同步代码块2. 同步方法3. Lock锁 一、线程安全 如果有多个线程在同时运行,而这些线程可能会同时运行这段代码。程序每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。 1. 多线程的潜在风险 电影院的多窗口售票:假设一场电影可以卖100张票。使用线程对象模拟售票窗口,多个线程对象同时执行售票任务。使用 Runnable 接口实现线程类 class RunnableIm原创 2020-08-18 23:45:03 · 146 阅读 · 0 评论 -
Java - 内存分析:多线程调度
内存分析:多线程调度一、绘制内存结构图二、类加载三、启动 main 线程四、启动其它线程五、争夺 CPU 执行权 多线程调度内存分析:给定以下多线程实现相关代码,观察和分析不同线程在内存中的的调度过程 一、绘制内存结构图 二、类加载 将 Thread 和 DemoThread 类的字节码文件加载到方法区中 三、启动 main 线程 程序总是从 main() 方法开始执行,首先,JVM在栈区中创建并启动一个 main 线程栈。然后在 main 线程栈中为 main 方法开辟一个栈帧,将 main() 方法压原创 2020-08-18 23:26:18 · 219 阅读 · 0 评论 -
Java - 并发编程:创建线程
并发编程:创建线程一、继承 Thread 类1. 实现步骤2. 相关方法二、实现 Runnable 接口1. 实现步骤2. 相关方法3. Runnable 接口与 Thread 类对比三、匿名线程1. 继承 Thread 类的匿名线程2. 实现 Runnable 接口的匿名线程 Java程序总是从一个静态且无返回值的 main() 方法开始从上至下依次执行。在不添加其它线程情况下,程序执行时会占用一个CPU进程,且这个进程中只包含一条主线程。在Java中,创建线程首先要定义线程类,然后将线程类实例化为线程对原创 2020-08-18 23:20:07 · 143 阅读 · 0 评论 -
Java - 并发编程:基本概念
并发编程的基本概念一、并发与并行二、进程与线程三、多线程四、线程调度 一、并发与并行 无论是并行还是并发,在用户看来都是“同时”运行的。实际上,一个CPU同一时刻只能执行一个任务。 并发:指两个或多个事件在同一时段内发生,即单核CPU在固定时段内交替执行多个任务 并行:指两个或多个事件在同一时刻发生,即多核CPU同时执行多个任务。 在单处理器(CPU)系统中,每一时刻只能有一道程序执行,多个程序在单 CPU 上采取分时的交替运行(并发执行)。而在多 CPU 系统中,多个程序可以被分配到多个CPU中,实现原创 2020-08-18 23:04:45 · 135 阅读 · 0 评论