Wesley13 Wesley13
3年前
java高并发核心类 AQS(Abstract Queued Synchronizer)抽象队列同步器
什么是AQS?全称:AbstractQueuedSynchronizer:抽象队列同步器是java.util.concurrent.locks包下的一个抽象类其编写者:DougLea(并发大佬,整个j.u.c包都是他写的)是j.u.c包的基础组件(核心)我们先来读一下该类的英文说明注
Stella981 Stella981
3年前
RabbitMQ使用场景
AMQPAMQP协议是一个高级抽象层消息通信协议,RabbitMQ是AMQP协议的实现。它主要包括以下组件:!(https://oscimg.oschina.net/oscnet/4eea8d68796a038f27fdc5945546a544f9d.png)1.Server(broker): 接受客户端连接,实现AMQP消息队列和路
Wesley13 Wesley13
3年前
Java并发之AQS详解
一、概述  谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)!  类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用的ReentrantLock/Semaphore/CountD
Stella981 Stella981
3年前
Django 之redis的应用
redis概述redis是一种nosql数据库,他的数据是保存在内存中,同时redis可以定时把内存数据同步到磁盘,即可以将数据持久化,并且他比memcached支持更多的数据结构(string,list列表队列和栈,set集合,sortedset有序集合,hash(hash表))
Stella981 Stella981
3年前
RabbitMQ如何通过持久化保证消息99.99%不丢失?
1\.本篇概要要解决该问题,就要用到RabbitMQ中持久化的概念,所谓持久化,就是RabbitMQ会将内存中的数据(Exchange交换器,Queue队列,Message消息)固化到磁盘,以防异常情况发生时,数据丢失。其中,RabblitMQ的持久化分为三个部分:1.交换器(Exchange
Stella981 Stella981
3年前
Linux 内核调优
1Linux内核调优1.首先在root用户下执行:vi/etc/sysctl.conf在文件末尾添加如下内容:vm.swappiness10当系统存在足够内存时,推荐设置为该值以提高性能。net.ipv4.tcp_syncookies1开启SYNCookies,当出现SYN等待队列溢出时,启用coo
Wesley13 Wesley13
3年前
Android的Binder机制浅析
1\.引言 一般实际的软件系统中进程间通信(IPC)的实现方法有命名管道(namedpipe),共享内存(sharedmemory),消息队列(messagequeue),Socket等方法。在Android的框架(Framework)中,以Binder作为框架内进程间(通常如服务和客户间)通信的主要实现手段。这可能是出于效
Stella981 Stella981
3年前
Linux 查看进程被杀死的详情
运行写的不太完善的爬虫程序,未限制任务队列大小,再加上本子配置不高,爬取网站到第3层大半时,内存不足了...进程运行太猛,导致系统outofmemory,那么此进程被系统的oomkiller杀死.此时终端显示"Killed"或"已杀死".查看相关信息的命令:dmesg|egrepiB100
Stella981 Stella981
3年前
RabbitMQ 初体验
<h2概述</h2<blockquoteRabbitMQ是一款消息队列中间件。他提供了几乎覆盖所有语言的SDK与文档,简直强大的不的了。要详细的去了解学习RabbitMQ,我建议还是看官方文档吧。<ahref"http://www.rabbitmq.com/getstarted.html"rel"nofollownoreferrer"ht
Stella981 Stella981
3年前
RabbitMQ之Fanout交换器模式开发
Fanout模式,即广播模式,一个发送到交换机的消息会被转发到与该交换机绑定的所有队列上。!(https://oscimg.oschina.net/oscnet/b97991a5e7c95baa612902c29d9346ab1d1.jpg)一、Provider配置文件1spring.application