PHP 工作环境配置及Xdebug配置 PHP7 工作环境配置及Xdebug配置1,工作环境及版本系统 windows10php 版本 php-7.1.29-Win32-VC14-x64下载线程安全的 windows 搭建Php 环境 与VC版本相关,注意自己的电脑VC版本下载地址 https://windows.php.net/download#php-7.1apache版本 httpd-2.4.39-o102r-x64...
2019年随笔 2019年随笔今年是职业生涯转折点的一年,今年32岁了,作为一个程序员来说,也算是高龄程序员了,是时候该想想后路了。做研发的如果还想继续混这行无非就是两条路,一条是转项目经理,另一条是继续做技术,找一个自己擅长的领域深入学习,成为资深或者专家级别。这样在公司里才能混的下去。今年3月份在北京辞去了工作,回大连生活。7年的北漂生活就这样结束了,从12年毕业一直在北京工作,虽然没去过什么大公司,...
JVM学习笔记- 6 Java内存模型与线程 JVM学习笔记- 6 Java内存模型与线程1 Java内存模型Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。此处的变量(Variables)与Java编程中所说的变量有所区别,它包括了实例字段、静态字段和构成数组对象的元素,但不包括局部变量与方法参数,因为后者是线程私有的 ,不会被共享,自然就不会存在竞争问题。Ja...
JVM学习笔记-2 对象的创建 JVM学习笔记-2 对象的创建1 new指令虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。在类加载检查通过后,接下来虚拟机将为新生对象分配内存。对象所需内存的大小在类加载完成后便可完全确定,为对象分配空间的任务等同于把一块确定大小的内存从Java...
python中一切皆对象 python中一切皆对象1,python中一切皆对象首先,对象应该是某一个类型的实例,也就是模板刻出来的模型其次,对象应该在内存中有一块区域用于存放它,应该有存放它的内存地址最后,对象应该有具体的值,也就是它肚子里的东西也就是说 一个对象应该具有 类型 内存地址 和值python中一切皆对象包括( 类 具体对象 方法 函数 模块 io … )1.1 类和方法也是对象py...
Java基础、进阶、高级到架构的知识集合 Java基础、进阶、高级到架构的知识集合一、基础篇1.1 JVM相关JVM内存结构堆、栈、方法区、直接内存、堆和栈区别Java内存模型内存可见性、重排序、顺序一致性、volatile、锁、final垃圾回收内存分配策略、垃圾收集器(G1)、GC算法、GC参数、对象存活的判定JVM参数及调优Java对象模型oop-klass、对象头HotSpot即时编译器、编译优化类加载...
Mysql ACID 隔离级别 到底什么是幻读 Mysql ACID 隔离级别 到底什么是幻读1 事物的ACIDACID表示原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)。一个很好的事务处理系统,必须具备这些标准特性:1.1 原子性(atomicity)一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败...
postman中 form-data、x-www-form-urlencoded、raw、binary操作 RD一般在测试接口时优先会选择谷歌得postman工具postman的Body里有:form-data、x-www-form-urlencoded、raw、binary类型具体时说明意思呢?一:form-data就是http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时...
Netty学习 HelloWorld Netty学习 HelloWorld1.Netty简介Netty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果。作为当前最流行的NIO框架,Netty在互联网领域、大数据分布式计算领域、游...
浅谈tcp socket的backlog参数 浅谈tcp socket的backlog参数最近看netty源码碰到ChannelOption.SO_BACKLOG参数,通过跟踪代码发现其实是用于设置底层tcp socket的backlog参数,由于不了解这个参数,有必要彻底的理解一下。TCP三次握手底层实现backlog参数主要用于底层方法int listen(int sockfd, int backlog), 在解释back...
Java 网络IO(BIO,NIO,AIO) Java 网络IO(BIO,NIO,AIO)1.BIOBIO 全称Block-IO 是一种同步阻塞的通信模式。我们常说的Stock IO 一般指的是BIO。是一个比较传统的通信方式,模式简单,使用方便。但并发处理能力低,通信耗时,依赖网速。 BIO 设计原理: 服务器通过一个Acceptor线程负责监听客户端请求和为每个客户端创建一个新的线程进行链路处理。典型的一请求一应答模式。若客户...
Java并发编程十二 Disruptor框架RingBuffer Java并发编程十二 Disruptor框架RingBuffer1. RingBuffer原理Disruptor整个框架的核心就是RingBuffer,也是为什么Disruptor为什么高效率的关键。 RingBuffer是一个首尾相连的环形数据结构,没有尾指针,只维护了一个指向下一个可用位置的序号。 详细原理查看 http://ifeve.com/dissecting-disrupt...
Java并发编程十一 Disruptor框架HelloWorld Java并发编程十一 Disruptor框架HelloWorld1.简介Disruptor是一个高性能的异步处理框架,或者可以认为是最快的消息框架(轻量的JMS),也可以认为是一个观察者模式的实现,或者事件监听模式的实现。 Disruptor能够在无锁的情况下实现网络的Queue并发操作。2. Disruptor 关键类RingBuffer: 被看作Disruptor最...
Java中CAS详解 Java中CAS详解在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁锁机制存在以下问题:(1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。(2)一个线程持有锁会导致其它所有需要此锁的线程挂起。(3)如果一个优先级高的线程等待一个优先级低的线程释放锁会导致优先级倒置,引起性能风险。volatile是不错的...
Java并发编程十 重入锁ReentrantLock 读写锁ReentrantReadWriteLock Java并发编程十 重入锁ReentrantLock 读写锁ReentrantReadWriteLockJava的concurrent并发包提供了一套与Synchronized关键字相同功能Lock,还有与wait()/notify()相同功能的Condition。Lock的功能比传统的Synchronized更加灵活。它具有嗅探锁定和多路分支等功能(一个lock对象可以创建多个Condi...
Java并发编程九 CountDownLatch、CyclicBarrier、Semaphore Java并发编程九 CountDownLatch、CyclicBarrier、Semaphore1.CountDownLatchCountDownLatch允许一个或多个线程等待其他线程完成操作。2.CyclicBarrierCyclicBarrier,让一组线程到达一个同步点后再一起继续运行,在其中任意一个线程未达到同步点,其他到达的线程均会被阻塞。3.Semaphore...
Java并发编程八 线程池 Java并发编程八 线程池1.线程池作用1.降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 2.提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。 3.提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。2. 线程池ThreadPoolExecutor...
Java并发编程七 生产者消费者模式 Java并发编程七 生产者消费者模式生产者-消费者模式是一个经典的多线程设计模式,它为多线程的协作提供了良好的解决方案。在生产者-消费者模式中,通常有两类线程,即若干个生产者线程和若干个消费者线程。生产者线程负责提交用户请求,消费者线程负责处理用户请求。生产者和消费者之间通过共享内存缓冲区进行通信。 生产者-消费者模式中的内存缓冲区的主要功能是数据在多线程间的共享。此外,通过该缓冲区,可以缓...
Java并发编程六 Master-Worker模式 Java并发编程六 Master-Worker模式Master-Worker是常用的并行计算模式。它的核心思想是系统由两类进程协作工作:Master进程和Worker进程。Master负责接收和分配任务,Worker负责处理子任务。当各个Worker子进程处理完成后,会将结果返回给Master,由Master作归纳总结。其好处就是能将一个大任务分解成若干个小任务,并行执行,从而提高系统的吞吐量...
Java并发编程五 Future模式 Java并发编程五 Future模式Future是并发编程中的一种设计模式,对于多线程来说,线程A需要等待线程B的结果,它没必要一直等待B,可以先拿到一个未来的Future,等B有了结果后再取真实的结果。 它的核心思想就是异步调用。当我们需要调用一个函数,但是这个函数执行很慢,如果我们不需要马上知道结果,我们可以立即返回,让它在后台慢慢处理这个请求,对于调用者来说,可以先处理一些其他任务,这...