首页
学习
活动
专区
工具
TVP
发布

happyJared

做好寫代碼這事
专栏作者
296
文章
364720
阅读量
30
订阅数
JVM - 运行时数据区域(2)
Java 虚拟机所管理的最大一块内存,Java 堆是所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的,就是存放对象实例,几乎所有的对象实例以及数组都在这里分配内存。
happyJared
2019-07-26
2560
谈谈 synchronized 和 ReentrantLock 的区别
“可重入锁”概念是:自己可以再次获取自己的内部锁。比如,一个线程获得了某个对象的锁,此时这个对象锁还没有释放,当其再次想要获取这个对象的锁时,还可以再获取的;如果不可锁重入的话,就会造成死锁;同一个线程每次获取锁,锁的计数器都自增1,所以要等到锁的计数器下降为0时,才能最终释放锁。
happyJared
2019-07-08
2.3K0
synchronized 关键字底层原理
通过 JDK 自带的 javap 命令查看 SynchronizedDemo 类的相关字节码信息:首先切换到类的对应目录执行 javac SynchronizedDemo.java 命令,编译后生成 SynchronizedDemo.class 文件,然后执行javap -c -s -v -l SynchronizedDemo.class。
happyJared
2019-07-04
7800
synchronized 关键字
早期版本中,synchronized 属于重量级锁,效率低下,这是由于监视器锁(monitor)是依赖于底层操作系统的 Mutex Lock 来实现的,Java 的线程是映射到操作系统的原生线程之上。如果要挂起或者唤醒线程,都需要操作系统帮忙完成,而操作系统进行线程间的切换时,需要从用户态转换到内核态,这个状态的转换需要相对长的时间,时间成本较高,这也就是早期 synchronized 效率低下的主要原因。庆幸的是,Java1.6 以后官方对 synchronized 做了较大的优化,因此现在的 synchronized 锁效率也是比较高的(推荐先使用)。
happyJared
2019-07-03
4240
Java开发人员常用的服务配置(Nginx、Tomcat、JVM、Mysql、Redis)
Nginx Nginx是一款由C语言编写的高性能、轻量级的HTTP和反向代理服务器,同时也是一款IMAP/POP3/SMTP服务器。 nginx.conf:Nginx核心配置文件,linux下默认安装在/etc/nginx/ # Nginx所用用户和组,window下不指定 user www-data; # 工作的子进程数量(通常等于CPU数量或者2倍于CPU) worker_processes auto; # pid存放文件 pid /run/nginx.pid; #
happyJared
2018-09-20
1.4K0
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档