- 博客(14)
- 收藏
- 关注
原创 一个非常tricky的synchronzed的问题——锁一个栈内本地变量
如果synchronized 锁一个线程的栈空间的变量会如何呢?/** * 卓二妹 */public class LockLocalReferrence { private Boolean run = true; private Thread thread1 = new Thread(){// String lockStr = new String("aa"); @Override public void run() {
2021-03-29 23:20:26
238
原创 一个死锁的例子及线程打印
/** * 卓二妹 */public class Deadlock { private static Long lock1 = 0L; private static Long lock2 = 1L; private static Runnable runnable1 = new Runnable(){ @Override public void run() { synchronized (lock1){
2021-03-29 00:47:23
180
1
原创 多线程底层原理一
图片导出我自己的processon:https://www.processon.com/view/link/605f1d0ee0b34d780e09703b
2021-03-27 20:01:42
106
原创 JVM 结构及垃圾回收整理
JVM 结构图片来源:https://blog.youkuaiyun.com/weixin_40516788/article/details/89293548方法区和堆是线程共享的。程序计数器、虚拟机栈是线程私有的。一个线程可能被中断,下次再被调度起来的时候,才知道指令执行到什么位置了,需要在程序计数器中保存中断的位置。程序计数器是线程私有保存执行的指令位置,虚拟机栈程序计数器线程中断时候保存当...
2019-12-18 17:43:37
157
原创 大数据之Hadoop(四)
查找场景设想一种场景,一种是需要在1亿行数据中查到相同的行。这么大的数据如果读入内存中进行计算,那么对机器的要求非常高非常耗费成本;其次,也有单点故障的风险。如果考虑用100台机器进行计算,可以采用下面的算法:1)计算每行数据的哈希值,并用hash值为文件名创建文件;如果文件已经存在,则将改行数据追加到文件中2)相同的行一定在同一个文件中,在同一个较小的文件中查找相同的行因此1一亿数据查找...
2019-11-26 18:01:43
327
原创 大数据之最直白的BIO\NIO\AIO的解释(三)
我类比一下BIO\NIO\AIO,服务器就是餐馆,客户端就是来餐馆的顾客。BIO: 进来一个顾客(连接),餐馆(服务器)就分配一个服务员(线程)来服务它,这时候顾客很墨迹想半天都不知道点啥(请求的IO还没有到),这个服务员(线程)就一直等呀等一个顾客进来就给它分配一个服务员;一个连接进来就给它分配一个线程。问题:顾客多了,餐馆没有那么多服务员,餐馆就瘫痪了。JVM的线程超过最大数量了,服务器...
2019-11-22 17:06:24
223
原创 大数据之高并发下使用Nginx的四层架构(二)
Ngix的四层架构早期,客户端浏览器直接访问tomcat服务器,由于大量的访问可能集中在查询商品模块上,由于查询模块占用了并发使得整个服务不可用,于是考虑将服务进行模块化拆分,中间通过一台服务器将客户的请求转发到服务模块上。请求转发服务器不同于lvs负载均衡,lvs不会跟客户端进行三次握手,而请求转发服务器会与客户端进行三次握手,连接建立后,再调用服务模块进行计算,获得返回的数据后转发给客户...
2019-11-21 16:42:35
369
原创 大数据之数据传输协议与负载均衡原理(一)
上一篇说到了应用层协议调用传输层协议,建立TCP连接的过程。接着说TCP协议调用下层协议将数据传输到目标服务器的过程。应用层协议:http, smtp, ssh传输层协议:tpc,udp命令:netstate -natp 可以查看哪些主机的哪些端口号与当前机器通信持有:源端口号;目的端口号网络层:ip,icmp命令:route -n 路由表持有: 源ip地址;终极目的地ip址链路...
2019-11-14 15:59:54
925
原创 大数据之三次握手与四次分手(0)
三次握手以http请求为例,当客浏览器想发送一个http请求给服务器的时候,应用层会先调用传输层建立tcp连接。这时候1)发送的http报文会先等着连接的建立2)客户端发送sync给服务器。3)服务器收到sync ,发送sync ack给客户端,服务器确认输入流正常。4)客户端收到了服务器的 sync ack ,客户端确认输出流和输入流正常。5)服务器收到了客户端的 sync ack,...
2019-11-12 17:50:54
117
原创 redis在虚拟机中的网络设置
在前一篇的虚拟机网络配置中,已经将虚拟机设置了桥接网络,可以和宿主机、外网、虚拟机之间互相通信。但是搭建了redis后,还需要进行一些设置,才能让另一个虚拟机里的docker中的web服务访问到。1)redis装好了之后,默认是绑定在127.0.0.1上,导致docker中的服务不能访问,需要将这行注释掉,这样所有服务器都能访问:2) 打开虚拟机的防火墙设置, 修改文件 /etc/sysco...
2019-11-05 18:11:37
283
原创 通过docker部署一个简单的web服务
前面把redis、oracle都部署好了,还有最后两步:1)docker镜像制作和启动2)redis和oracle都在vitualbox中,防火墙问题等等docker 镜像及制作首先安装好docker服务后。创建我的bddts目录,将我需要的jar包和配置文件等,都拷贝到该目录下:编辑 Dockerfile 文件,如下:FROM java:8MAINTAINER Yuepin...
2019-11-05 16:54:30
770
原创 ORACLE 19C 安装好的默认密码
安装oracle 12c的步骤参考:Database Installation Guide for Linux执行完成后下面的自动配置脚本后,没有任何地方设置过密码。# /etc/init.d/oracledb_ORCLCDB-19c configure在这个命令执行完成后,会提醒查看完整日志的地方:Look at the log file “/opt/oracle/cfgtoollo...
2019-11-05 10:54:25
12661
6
原创 卓二妹的Mac配置vitualbox,与主机、外网互通
vitualbox虚拟机与MAC、外网互通的设置桥接模式:配置虚拟机网络:修改虚拟机配置,主要注意下面几点:1)虚拟机的ip和物理机必须在同一个网段2)根据物理机的网关,子网掩码等配置虚拟相应的项。3)启用网络服务,设置onboot为yes我物理机的网络配置如下:在虚拟机中修改文件:/etc/sysconfig/network-scripts/ifcfg-eth0 文件,虚拟...
2019-10-30 14:27:48
186
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人