浅谈自旋锁和 JVM 对锁的优化

背景 先上图 由此可见,非自旋锁如果拿不到锁会把线程阻塞,直到被唤醒;自旋锁拿不到锁会一直尝试 为什么要这样? 好处 阻塞和唤醒线程都是需要高昂的开销的,如果同步代码块中的内容不复杂,那么可能转换线程...
2年前
630

php桥接模式是什么

,说明,1、将两个原本不相关的类结合在一起,然后利用两个类中的方法和属性,输出一份新的结果。,2、结构分为抽象类、被提炼的抽象类、实现类、具体实现类和客户端代码。,实例,以上就是php桥接模式的介绍...
3年前
1210

php双引号和单引号的区别

,说明,1、双引号解释变量,单引号不解释变量。,2、在双引号中插入单引号,如果单引号中有变量,则解释变量。,3、双引号变量名后面必须有一个非数字。,字母、下划线的特殊字符,或者用{}把变量括起来,否则...
3年前
150

php引用的使用注意

,说明,1、php中引用不是指针,允许用两个变量来指向同一个内容。,2、如果在foreach语句中给一个具有引用的变量赋值,被引用的对象也被改变。,实例,以上就是php引用的使用注意,希望对大家有所帮...
3年前
930

php桥接模式的作用

,作用说明,1、桥接模式分离抽象接口及其实现部分,实现解耦,比继承更好的解决方案。,2、便于扩展,桥接模式比继承更灵活,在减少创建类的同时也便于组合。,3、桥接模式可用于两个独立变化维度。,实例,以上...
3年前
550

php聚合式迭代器是什么

,说明,1、实现其他迭代器功能的接口,相当于在其他迭代器上安装一个外壳,只有一种方法。,2、聚合迭代器可以与许多迭代器结合,实现更高效的迭代。,实例,以上就是php聚合式迭代器的介绍,希望对大家有所帮...
3年前
390

php数组中如何重置索引

,1、array_values 函数并不止重置数字索引还会将字符串键名也同样删除并重置。,2、array_slice函数的功能是取出数组的中的一段,但它默认会重新排序并重置数组的数字索引。,可以利用它...
3年前
200

php $this是什么意思

,说明,1、$this是一个到当前对象的引用。在$this中有个指针,谁调用它,他就指向谁,它只能再类内部使用。,2、$this不能用来访问静态属性,因为静态属性是和类绑定的。,只能由static, ...
3年前
190

php中__isset方法的使用

,说明,1、isset()是测定变量是否设定用的函数,传入一个变量作为参数,如果传入的变量存在则传回true,否则传回false。,2、当对不可访问的属性调用isset(),或empty()时候会被自...
3年前
310

php中__call方法怎么用

,说明 ,1、当要调用的方法不存在或者权限不足时候,会自动调用。,2、首先要重写__call方法,__call方法有2个参数,method和param,对应真实的方法名字和参数。,应用场景,当需要使用...
3年前
310

php魔术方法__invoke的介绍

,说明,1、直接调用对象名当方法使用时,就调用的是__invoke()方法。,2、对象本身不能直接当函数用。如果去掉__invoke()方法,还是将对象当做方法来使用时,就会报错。,实例,以上就是ph...
3年前
350

php PSR-4是什么意思

,说明,1、PSR-4规范了指定文件路径从而自动加载类,同时规范了自动加载文件的位置。,2、在PSR-4的键下,可以定义命名空间和路径的映射关系。,当自动加载类如Foo\\Bar\\Baz时,命名空间...
3年前
210

php中__get如何获取成员属性

,说明 ,1、可以在对象外部获取私有成员属性,__get()不光只是获取当前类的私有成员变量,还能在这个方法里面做其他操作。,比如实例化另一个类、获取另一个类的对象。,2、如果成员属性不封装成私有的...
3年前
100

php中get和post有哪些不同

,不同说明,1、GET生成一个TCP数据包,POST生成两个TCP数据包。,2、GET请求只能进行url编码,而POST支持多种编码方式。,3、当浏览器退回时,GET是无害的。,POST将再次提交请求...
3年前
110

php单例模式如何理解

,说明,1、当需要保证对象只有一个实例时,单例模式非常有用。把创建对象的控制权交给了一个单一的点,应用程序随时只存在,只存在一个实例。单例不应该在类的外部实例。,注意,2、必须访问级别为private...
3年前
230

php中unset函数的使用

,说明,1、unset函数可以释放给定的变量。通过使用该函数,可以删除数组中的空白元素。,2、该函数接受索引并删除指定索引上存在的元素。,语法,参数 ,$var: 要销毁的变量。,返回值,没有返回值...
3年前
150

PHP转Go,框架选什么?

这是一期会引起广泛讨论的内容,不亚于“PHP是世界上最好的语言”。,不管我们是否基于框架去开发,不管使用什么框架去开发。,6个字的内功心法一定要牢记:高内聚,低耦合。,不管是单体项目还是微服务,不管是...
3年前
500

php中n阶乘的实现方法

,1、普通递归实现, 根据递归的通用公式fact(n) = n * fact(n-1)很容易写出阶乘的计算代码。,普通递归实现的优点在于代码比较简洁,和通用公式一样的过程使得代码容易理解。缺点则在于由...
3年前
200

php中__destruct方法是什么

,说明,1、当类被销毁时候自动触发,可以使用unset方法触发该方法。,2、属类中可选择的一部分,通常用来完成一些在对象销毁前的清理任务。析构函数不能带有任何参数。,格式:,实例 ,以上就是php中...
3年前
460

PHP+Redis缓存技术一览

有否想过PHP使用 redis 作为缓存时,如何能:,1.前后台模块共用Model层;,2. 但是,不能每个Model类都进行缓存,这样太浪费Redis资源;,3. 前后台模块可以自由决定从数据库还是...
3年前
230

php中__sleep方法的使用

,说明,1、在类的外部调用serialize()时自动调用。,2、__sleep()方法通常用于提交未提交的数据或类似的清理操作。如果有一些大对象,但不需要完全保存,这个功能非常有用。,实例,以上就是...
3年前
340

php中$this的就近原则

,说明,1、$this的就近原则不仅适用于private属性,同样适用于private成员方法。,2、$this指代被调用的对象,但在处理private属性和方法时,会遵循就近原则,会指代所属方法所在...
3年前
180

php多进程通信之管道的介绍

,说明,1、管道是比较常用的多进程通信手段,管道分为无名管道与有名管道。,2、无名管道只能用于具有亲缘关系的进程间通信,而有名管道可以用于同一主机上任意进程。,实例,以上就是php多进程通信之管道的介...
4年前
300

php中PCRE2的使用

,说明,1、PHP7.3开始,PCRE2将作为新的正则引擎使用。,2、需要将现有的正则表达式迁移到符合PCRE2的规则。这些规则比以前更具侵入性。,特性,相对后向引用 \g{+2}(等效于已存在的 ...
4年前
110

php中array_filter清除空值

,说明,1、array_filter的作用是用回调函数过滤数组中的单元,第二个参数其实是个回调函数,向数组的每个成员都执行这个回调函数。,2、若回调函数的返回值为true,便保留这个成员,为false...
4年前
170

php变量的引用赋值使用

,说明,1、引用赋值,使用这种赋值方法意味着新的变量引用原始变量,改变一个会影响另一个。,在这个过程中,省略了复制操作,所有这种赋值方法效率更高;,2、只有有名字的变量才能赋值,且unset()函数释...
4年前
180

php变量有哪些特殊类型

,1、资源(resource),是一种特殊的变量,保存在外部资源中。,使用的资源类型变量包括:打开的文件、数据库连接、图形画布区域等特殊句柄。由程序员创建和回收。,2、NULL,特殊的NULL表示一个...
4年前
260

PHP核心架构是什么

,1、Zend引擎是PHP内核的一部分。,完全用纯C实现,它将PHP代码翻译(词法、语法解析等一系列编译过程)为可执行opcode,并实现相应的处理方法,从而实现基本的数据结构(例如hashtable...
4年前
370

PHP中strval()函数如何使用

,1、函数说明,strval()函数是PHP中的内置函数,用于将任何标准值(字符串、整数或双精度)转换为字符串。我们不能在数组或对象中使用strval。如果使用该函数,该函数只返回需要转换的值的类型名...
4年前
510

php命令模式如何理解

,1、把请求封装成一个对象,允许使用不同的请求来参数化客户。对请求进行排队或记录请求日志,并支持可撤销动作。,2、组成命令抽象类、具体命令类等。,命令抽象类,用来声明执行操作的接口。,具体命令类,将一...
4年前
290

php尾部逗号的使用

,说明,1、在参数、元素、变量列表结尾,追加尾部逗号。,有时我们在数组内以及函数调用(尤其是可变参函数)时需要传递大量元素,若是漏掉一个逗号,便会报错。,2、这个特性已经允许在数组内使用,并且从PHP...
4年前
300

php长连接什么

,说明,1、长连接是指建立SOCKET连接后,无论是否使用,都保持连接,但安全性较差。,每一次访问PHP脚本,都是在所有PHP脚本执行完成之后,我们才会得到返回结果。若要使脚本持续运行,则必须采用ph...
4年前
150

php短连接是什么

,说明,1、短连接一般只在client和server之间传达读写操作,短连接管理简单,存在的连接是有用的连接,不需要额外的控制手段。,2、操作步骤,建立连接、数据传输、关闭连接。,分别是,client...
4年前
250

PHP内部函数是什么

,1、概念,在函数内部声明的函数就是内部函数。,2、使用注意,(1)调用外部函数之后,就可以任意调用内部函数,(2)在函数内部可以调用内部函数, 但是必须在内部函数定义之后调用,因为PHP解析器只会加...
4年前
380

php empty()函数的用法

,说明,1、用于检测变量是否为空。,2、如果变量不存在,或者其值等于FALSE,则被认为不存在。如果没有变量,empty()就不会发出警告。,语法,实例 ,以上就是php empty()函数的用法,希...
4年前
420

PHP中Zval是什么

,1、概念,Zval是zend中另一个非常重要的数据结构,用来标识并实现PHP变量。包含了PHP中的变量值和类型的相关信息。,2、组成,type:指定了变量所述的类型(整数、字符串、数组等),refc...
4年前
360

php中foreach的使用

,说明,1、foreach是通过对象的工具,可以单独使用,也可以配合迭代器和生成器使用。,2、如果foreach被定义为类,则可以输出所有属性,如果在类别之外被调用为函数,则只能输出public属性...
4年前
380

为你解答如何打开php文件

PHP是一个程序编写语言,被广泛运用于互联网开发,执行效率极高。PHP文件便是置入这类语言的一个动态网站文件,下面,我便给大家介绍一下打开PHP文件的方法,如果有需要就一起来了解一下吧 近期有不少网民...
4年前
440

php工厂模式的介绍

,说明,1、工厂模式解决的是如何不通过new建立实例对象。,2、有一些方法可以创建目标,而不是new。,如果想改变创建的对象类型,只需要改变工厂,使用这个工厂的所有代码会自动改变。,3、通常与接口一起...
4年前
300

php消息队列的介绍

,说明,1、消息队列是存放在内存中的一个队列。,2、由于消息队列去数据是,只有一个进程能去到,所以不需要额外的锁或信号量。,实例,以上就是php消息队列的介绍,希望对大家有所帮助。 更多php学习指路...
4年前
460

PHP中hash table有哪些特点

,1、特点,支持典型的key->value查询。,可以作为数组使用。,添加、删除节点是O(1)的复杂性。,key支持混合类型:同时存在相关数组索引数组。,Value支持混合类型。,支持线性遍历...
4年前
170

php中CLI模式是什么

,1、是PHP在命令行运行的接口,区别于在Web服务器上运行的PHP环境。,2、优点,使用多进程时,在子进程结束后,内核负责资源的回收。,在使用多进程时,子进程异常退出并不会导致整个进程线程的退出,父...
4年前
270

php static的三种使用方法

,说明,1、表示静态,是用来在声明属性和声明成员方法之前。,可以达到不需要实例化也可以直接调用的目的,并且让静态属性和类被绑定。,2、用作代词。,可用于成员方法的表达式中,用于指所调用的类。,3、成员...
4年前
450

php变量如何命名

,说明,1、变量名严格区分大小写,但内置结构、关键词和用户定制的类名和函数名不区分大小写。,2、变量名不能从数字开始,必须从字母或下划线开始,后面可以和任何数字、字母和下划线一起使用。,中间不能使用空...
4年前
150

php变量如何声明

,说明,1、变量在PHP中的声明必须用美元符号后跟变量名来表示,使用赋值操作符(=)给变量赋值。,2、如果大多数PHP变量不在函数中声明,则只能在声明处草文件结束的单独范围内使用。,这个单独的范围跨度...
4年前
390

php中 __clone的使用

,说明,1、用于对象复制。对象复制通过clone关键字来完成。,2、__clone()方法不需要任何参数。,3、在复制的同时,目标对象的某些属性与源对象的不同,可以在类里面定义一个__clone()方...
5年前
290