09 2020 档案

摘要:一、使用场景 主要是用来控制同时执行线程的数量,用以保护临界资源 二、使用实例 package com.test.lock; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.concurrent.Se 阅读全文
posted @ 2020-09-26 18:16 码来 阅读(187) 评论(0) 推荐(0)
摘要:一、CyclicBarrier使用场景分析 1)CyclicBarrier :翻译过来为循环屏障,即这个东西可以循环用 2)就如赛跑时候的起跑线,发令枪打响则大家一起跑,而且这个是可以循环使用的发令枪 3)如果有N个线程想要同时一起并发执行,这个时候可以使用CyclicBarrier来处理 二、Cy 阅读全文
posted @ 2020-09-26 18:14 码来 阅读(320) 评论(0) 推荐(0)
摘要:一、应用场景 1)主线程开启n个线程后,等待所有子线程执行完成以后,主线程对子线程的数据进行汇总,然后主线程结束即(简单说:主线程等待所有子线程执行完成后,主线程才结束) 2)2组线程,第一组线程等待第二组线程执行完成以后才执行,即第一组线程wait,第二组线程计数器不断减少 二、使用示例 pack 阅读全文
posted @ 2020-09-26 18:12 码来 阅读(186) 评论(0) 推荐(0)
摘要:一、Condition作用是什么 主要功能和Object中的wait、notify功能相对应,使某个线程 在某种情况下等待和唤醒的功能。 二、使用实例 1)实例1,单一生产者和消费者使用,并且只用一个condition对象控制生产者和消费者 注意:单一condition对象,生产者和消费者都在一个队 阅读全文
posted @ 2020-09-26 18:09 码来 阅读(271) 评论(0) 推荐(0)
摘要:一、方法一 final void lock() { //第一个线程获取锁,如果成功,则直接返回,这种情况是最快的 if (compareAndSetState(0, 1)) setExclusiveOwnerThread(Thread.currentThread()); else //如果不是第一个 阅读全文
posted @ 2020-09-23 17:01 码来 阅读(268) 评论(0) 推荐(0)
摘要:一、JMH是什么? JMH是Java性能测试工具,主要是对工程中一些方法进行一些基准测试,支持的时间单位为:nano / micro / milli / macro 二、JMH使用案例-代码: 1 POM文件 <dependencies> <dependency> <groupId>junit</g 阅读全文
posted @ 2020-09-23 16:57 码来 阅读(4425) 评论(0) 推荐(0)
摘要:一、重量锁的数据结构 1、 Synchronized升级到重量锁以后,会创建一个ObjectMonitor对象,对象中会有:当前持有锁的线程、WaitSet(保存处于Waiting状态的线程)、EntryList(保存处于Blocked状态的线程) 2、重量锁本质:重量锁使用操作系统底层的 Mute 阅读全文
posted @ 2020-09-23 16:53 码来 阅读(671) 评论(0) 推荐(0)
摘要:一、JVM参数设置参考 关闭延迟:-XX:BiasedLockingStartupDelay=0 设置JVM关闭偏向锁:-XX:UseBiasedLocking=false 打印JVM启动参数: -XX:+PrintFlagsFinal 二、释义 1 批量重偏向锁:当对某个类的对象偏向锁批量撤销20 阅读全文
posted @ 2020-09-23 16:52 码来 阅读(1261) 评论(0) 推荐(1)
摘要:(锁源码文件:bytecodeInterpreter.cpp) 问题: 1 偏向锁加锁前,加锁中,加锁后头变化 2 偏向锁升级轻量级锁,升级前,轻量锁,和轻量级锁完成对象头变化 结论: 1 偏向锁加锁前,对象头标识 101,没有保存线程ID 2 偏向锁加锁 ,对象头标识101,保存线程ID(1 当前 阅读全文
posted @ 2020-09-23 16:46 码来 阅读(994) 评论(0) 推荐(0)
摘要:我们用Java来编写程序,经常创建对象,那么Java中的对象到底包含什么东西呢? JAVA 对象包括: 1 对象头 2 对象的实例数据 3 对齐填充 对象头里面都有什么呢? 一、看看openjdk官方文档怎么说的地址:http://openjdk.java.net/groups/hotspot/do 阅读全文
posted @ 2020-09-22 18:19 码来 阅读(1410) 评论(0) 推荐(0)
摘要:一、C语言的基础: 1) C结尾文件:源代码文件 2) O结尾文件:目标文件(二进制文件),每个文件经过编译都会形成目标文件,多个目标文件连接后可以形成可执行文件。(gcc -g -c hello2.c) 3) H结尾文件:头文件,存放着C文件中的函数定义,结构体定义等 4) 可执行文件:gcc h 阅读全文
posted @ 2020-09-22 18:05 码来 阅读(798) 评论(0) 推荐(0)
摘要:通过查看汇编指令可以得出 i = i+ 1; 会编译为很多指令 一、编译C语言程序,并查看汇编指令 #include <stdio.h> int main() { //printf( "Hello world!\n" ); int i ; i = i+ 1; return 0; } View Cod 阅读全文
posted @ 2020-09-22 18:04 码来 阅读(387) 评论(0) 推荐(0)
摘要:Java程序员也要知道一些底层知识 一、Linux操作系统的三种锁机制:互斥锁(metux)、自旋锁(Spin)、信号量 二、互斥锁-C语言使用-Java锁会调用 1)代码编译指令: gcc mutextest.c -o mutextest.out -pthread 2) C语言代码: #inclu 阅读全文
posted @ 2020-09-22 17:59 码来 阅读(1839) 评论(0) 推荐(0)
摘要:一、Nacos注册中心服务的启动 源码启动见:https://www.cnblogs.com/lean-blog/p/13579109.html 二、SpringCloud服务注册的客户端的搭建 1、官方实例地址: https://github.com/nacos-group/nacos-examp 阅读全文
posted @ 2020-09-22 17:55 码来 阅读(1335) 评论(0) 推荐(1)
摘要:一、JAVA线程的本质是什么?通过本文真正了解JAVA线程 二、测试使用的Java版本:java version "1.8.0_211" 三、通过C语言来调用操作系统底层API创建线程-java语言的本质 操作系统Linux线程:pthread_create (创建线程) 如何使用pthread_c 阅读全文
posted @ 2020-09-04 17:56 码来 阅读(424) 评论(0) 推荐(0)
摘要:一、Nacos注册中心服务的启动 源码启动见:https://www.cnblogs.com/lean-blog/p/13579109.html 二、SpringCloud服务注册的客户端的搭建 1、官方实例地址: https://github.com/nacos-group/nacos-examp 阅读全文
posted @ 2020-09-02 09:43 码来 阅读(819) 评论(0) 推荐(0)