Jacquelyn38 Jacquelyn38
3年前
解决进程死锁——银行家算法透析
死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。避免死锁算法中最有代表性的算法是DijkstraE.W于1968年提出的银行家算法:下面我们将从例题中一点一点的分析:解题:第一步:
待兔 待兔
3年前
Golang泛型编程初体验
序言众所周知,Golang中不支持类似C/Java中的标记式泛型,所以对于常用算法,比如冒泡排序算法,有些同学容易写出逻辑上重复的代码,即整型是第一套代码,字符串型是第二套代码,用户自定义类型是第三套代码。重复是万恶之源,我们当然不能容忍,所以要消除重复,使得代码保持在最佳的状态。本文通过一个实际使用的简单算法的演进过程,初次体验了Golan
Stella981 Stella981
3年前
Cloud Team:上能修 DB,下能改容器的云原生信仰者 | PingCAP 招聘季
TiDB从诞生之时就带着云原生的标签,并且底层存储引擎TiKV也在2019年成为了CNCF(云原生计算基金会)的孵化项目。我们很早就认识到,云提供的基础设施可编程、按量付费等区别于传统数据中心的核心特质,正是释放TiDB弹性伸缩潜力的最佳载体。而在另一方面,由于有状态应用天生的复杂性和数据资产不可估量的重要性,云原生革命的上半场
Wesley13 Wesley13
3年前
TCP被动打开 之 第一次握手
假定客户端执行主动打开,服务器执行被动打开,客户端发送syn包到服务器,服务器接收该包,进行建立连接请求的相关处理,即第一次握手;本文主要分析第一次握手中被动打开端的处理流程,主动打开端的处理请查阅本博客内另外的文章;IPv4携带的TCP报文最终会进入到tcp\_v4\_do\_rcv函数,服务器准备接收连接请求时,是处于LISTEN状态的,所以我们只关
Stella981 Stella981
3年前
CoreOS实践指南(十):在CoreOS上的应用服务实践(下)
在这篇中,会继续接着前次的话题,通过具体的案例,介绍CoreOS为分布式和集群服务带来的便利。在前一个案例中,为了完成采集和管理分布在集群各个节点上的服务状态信息,我们通过Etcd的分布式存储特性,设计了一种解决分布式服务中应用运行的节点和时间均不确定的问题的监控方法。在这次的案例中,会在这种服务监控方案的基础上,继续实现将监控结果作为自动配置的反馈,从
Stella981 Stella981
3年前
Django_cookie和session
cookie和session1.cookie:在网站中,http请求是无状态的。也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户。cookie的出现就是为了解决这个问题,第一次登录后服务器返回一些数据(cookie)给浏览器,然后浏览器保存在本地,当该用户发送第二次请求的时候,就会自动的把上次
Wesley13 Wesley13
3年前
TMS32F28027的GPIO34驱动光耦问题
问题:硬件研发同事在调试一块TMS32F28027产品电路板时发现GPIO34出现上电控制正常,运行中只要Reset芯片,系统进入锁死状态,GPIO34引脚外部直接通过一个510欧电阻驱动光耦TLP181。据同事描述只有这个引脚驱动光耦的时候会出现这个问题,换用其它引脚驱动光耦,或则光耦去掉换成驱动LED都不会发生这个问题。相关原理图如下:!(h
Wesley13 Wesley13
3年前
TYPESDK手游聚合SDK服务端设计思路与架构之三:流程优化之订单保存与通知
经过前两篇文字的分析与设计,我们已经可以搭建出一个能够支持多游戏多渠道的聚合SDK服务端,但这只是理想化状态下的一个简化模型。如果接入渠道的逻辑都是按照理想化的简化过程来构建,那么对于支付的请求,我们可以简化成这样几步:1.游戏客户端创建订单。2.游戏客户端(通过TYPESDK客户端)调用渠道lib库中相应接口,发起支付。3.用户在弹出的
Wesley13 Wesley13
3年前
MySQL常见问题
事务四大特性原子性:不可分割的操作单元,事务中所有操作,要么全部成功;要么撤回到执行事务之前的状态一致性:如果在执行事务之前数据库是一致的,那么在执行事务之后数据库也还是一致的;隔离性:事务操作之间彼此独立和透明互不影响。事务独立运行。这通常使用锁来实现。一个事务处理后的结果,影响了其他事务,那么其他事务会撤回。
Stella981 Stella981
3年前
JVM中锁优化简介
本文将简单介绍HotSpot虚拟机中用到的锁优化技术。自旋锁互斥同步对性能最大的影响是阻塞的实现,挂起线程和恢复线程的操作都需要转入内核态中完成,这些操作给系统的并发性能带来了很大的压力。而在很多应用上,共享数据的锁定状态只会持续很短的一段时间。若实体机上有多个处理器,能让两个以上的线程同时并行执行,我们就可以让后面请求锁的那个线程原地自旋(