WangJiQing

导航

2022年12月25日 #

monitor原理

摘要: Java对象头 以32位虚拟机为例 普通对象 数组对象 mark word(32bits) 看后面两位即可区分哪种锁,无所和偏向锁需要看biased_lock的值是1还是0 工作原理 Monitor被翻译为监视器或管程 每个Java对象都可以关联一个Monitor对象,如果使用synchronize 阅读全文

posted @ 2022-12-25 12:18 如梦幻泡影 阅读(35) 评论(0) 推荐(0) 编辑

线程安全分析

摘要: 线程安全分析 成员变量和静态变量是否线程安全? 如果它们没有共享,则线程安全 如果它们被共享了,根据它们的状态是否能够改变,又分两种情况 如果只有读操作,则线程安全 如果有读写操作,则这段代码是临界区,需要考虑线程安全 例如成员变量list,被两个线程访问,并进行读写操作,没有措施导致线程不安全 p 阅读全文

posted @ 2022-12-25 12:16 如梦幻泡影 阅读(21) 评论(0) 推荐(0) 编辑

买票&转账问题

摘要: 买票&转账问题 1、买票问题 现象 模拟2200人来买票,总票数为2000张票。出现线程安全问题:卖票超过总票数 public class ExerciseSell { public static void main(String[] args) { //卖票窗口,有2000张票 TicketWin 阅读全文

posted @ 2022-12-25 12:14 如梦幻泡影 阅读(27) 评论(0) 推荐(0) 编辑

2022年12月20日 #

synchronized介绍

摘要: synchronized 1、多线程之间容易出现线程安全问题 一个数由两个线程计算,一个线程加5000,另一个线程减5000,得出结果不为0 static int count = 0; public static void main(String[] args) throws Interrupted 阅读全文

posted @ 2022-12-20 12:32 如梦幻泡影 阅读(20) 评论(0) 推荐(0) 编辑

线程状态演示

摘要: 线程状态演示 操作系统层面有5中状态 Java中有6种状态 NEW、 RUNNABLE、 BLOCKED、 WAITING、 TIMED_WAITING、 TERMINATED Thread源码中就有显示,打印出来 演示 @Slf4j public class TState { public sta 阅读全文

posted @ 2022-12-20 12:29 如梦幻泡影 阅读(18) 评论(0) 推荐(0) 编辑

2022年12月17日 #

线程常用方法

摘要: 线程常用方法介绍 1、方法概述 | 方法说明 | static | 功能说明 | 注意 | | : | : | | | | start() | | 启动一个新线程,在新的线程运行run方法中的代码 | start方法只是让线程进入就绪,里面代码不一定立刻运行(CPU的时间片还没分给它)。每个线程对象 阅读全文

posted @ 2022-12-17 17:51 如梦幻泡影 阅读(32) 评论(0) 推荐(0) 编辑

创建线程的4种方法

摘要: 线程创建方法 1、继承Thread,重写run方法 private static void one() { class T extends Thread{ @Override public void run() { log.debug("one is running..."); } } T t = 阅读全文

posted @ 2022-12-17 10:39 如梦幻泡影 阅读(110) 评论(0) 推荐(0) 编辑

2022年12月14日 #

进程线程

摘要: 1、什么是进程、线程、并发、并行 一、进程线程 1、进程 程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至CPU,数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理IO的当一个程序被运行,从磁盘加载这个程序的代码至内存,这时就开启了 阅读全文

posted @ 2022-12-14 12:23 如梦幻泡影 阅读(57) 评论(0) 推荐(0) 编辑