onlyloveyd onlyloveyd
4年前
协变和逆变
本文同步发表于我的微信公众号,在微信搜索OpenCVorAndroid即可关注。协变、逆变概念许多程序设计语言的类型系统支持子类型。例如,如果Cat是Animal的子类型,那么Cat类型的表达式可用于任何出现Animal类型表达式的地方。所谓的变型(variance)是指如何根据组成类型之间的子类型关系,来确定更复杂的类型之间(例如C
baskbull baskbull
4年前
操作系统学习笔记 原来自旋锁还可以这样实现!
在java中我们知道对线程使用CAS(compareandswap)来实现自旋锁,在没有学习操作系统之前,我以为这是唯一一种方法了。但是今天学到了操作系统中的同步互斥,终于明白了原来CAS、TS、Swap这些都是硬件提供的原子操作罢了!不仅CAS可以实现自旋锁,TS(TestandSet)同样可以!临界区临界区进程中访问临界资源的一段需要互斥执行
Wesley13 Wesley13
3年前
java并发相关(四)——关于synchronized的可重入性,线程切换实现原理与是否公平锁
一、可重入性  关于synchronized的可重入性的证明,我们可以通过A类内写两个同步方法syncA(),syncB()。然后syncA内调用syncB,调用syncA发现代码可正常执行,来证明这一点。  当处于无锁阶段时,划掉,都重入了不可能处于无锁。  当处于偏向锁阶段时,由之前对偏向锁的解释可知,偏向当前线程id是,当前线程可直
菜园前端 菜园前端
2年前
什么是JavaScript 调用栈?
原文链接:什么是调用栈?我们写的JS代码大多数都是同步模式,也就是从上往下依次执行。后一个任务必须要等前一个任务结束才能开始执行,程序的执行顺序和我们代码的编写顺序是完全一致的。程序执行中每遇到一个任务都会先入栈,当前入栈的任务执行完毕后就会出栈。本来栈的
五面阿里巴巴拿offer后定级P6:分享Java面经及答案总结
一面(电话)说说对JVM的理解treemap和hashmap有什么区别?Java多线程的的5大状态图流转mysql主键和唯一索引的区别说说最近的项目如何实现session共享,用redis如何实现缓存击穿的概念和解决方案说说微服务,微服务之间如何管理二面(现场)javanio常?用的三个类java里面的同步锁了解吗?Countdownlauch和Cylic
Wesley13 Wesley13
3年前
RPC原理及实现
1简介RPC的主要功能目标是让构建分布式计算(应用)更容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性。为实现该目标,RPC框架需提供一种透明调用机制让使用者不必显式的区分本地调用和远程调用。2调用分类RPC调用分以下两种:同步调用客户方等待调用执行完成并返回结果。
Stella981 Stella981
3年前
Qt视频显示类QVideoWidget的使用说明与代码演示
      先简要说明下视频显示,视频文件想在电脑屏幕上显示,需要承载在UI控件上,例如MFC,可以用Picture控件,C可以用PictureBox,Qt可以用QOpenGLWidget等,不同的UI库,实现方法不同。当然这只是像素的展示,还涉及到音视频编解码,同步等。这些,UI库可能就做不到了,需要借助第三方库,例如大名鼎鼎的FFmpeg,SDL
Stella981 Stella981
3年前
Hibernate 缓存机制
一、为什么要用Hibernate缓存Hibernate是一个持久层框架,经常访问物理数据库。为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能。缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。二、Hibernate
Stella981 Stella981
3年前
Nginx之进程间的通信机制(共享内存、原子操作)
1\.概述Linux提供了多种进程间传递消息的方式,如共享内存、套接字、管道、消息队列、信号等,而Nginx框架使用了3种传递消息的传递方式:共享内存、套接字、信号。在进程间访问共享资源时,还需要提供一种机制使各个进程有序、安全地访问资源,避免并发访问带来的未知结果。Nginx主要使用了3种同步方式:原子操作、信号量、
Stella981 Stella981
3年前
Solr搜索引擎入门知识汇总
1.技术选型,为什么用solr而不用lucene,或者其他检索工具lucene:需要开发者自己维护索引文件,在多机环境中备份同步索引文件很是麻烦Lucene本质上是搜索库,不是独立的应用程序。而Solr是。Lucene专注于搜索底层的建设,而Solr专注于企业应用。Lucene不负责支撑搜索服务所必须的管理,而Solr负责。一句