Ge's Blog

享受技术所带来的快乐 – Study Hard, Improve Every Day

android 通信 rabbitmq 实现语音聊天室

效果图 一. 后端服务 采用RabbitMQ, 用Docker安装RabbitMQ docker-compose 配置 RabbitMQ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 version: '3.3' services: rabbitmq: container_name: rabbitmq image: rabb...

头条_signature逆向分析

头条访问url参数 我们浏览器打开头条页面 1 https://www.toutiao.com/c/user/token/MS4wLjABAAAA0VxYy_b-OIMqWQjBo9g2AIWbQWIf59GaVzYes5bYzY8/? F12进入开发者模式,在NetWork里找到 1 https://www.toutiao.com/api/pc/list/user/feed 点开之后可...

搬瓦工、Vultr、Linode、DigitalOcean等VPS IP相继被屏蔽怎么办?

搬瓦工、Vultr、Linode、DigitalOcean等VPS IP相继被屏蔽怎么办? 这两天因为某些原因,搬瓦工、Vultr、Linode、DigitalOcean相继被屏蔽了,甚至是阿里云、google云、微软云等服务器都未能幸免,很多国外VPS都遭了殃,特别是Vultr、搬瓦工,怎样解决Linode、搬瓦工、Vultr、DigitalOcean等国外VPS被屏蔽的问题呢?下面我们说...

搬瓦工 OpenVZ 无法续费

搬瓦工 OpenVZ 无法续费常见问题解答 1、搬瓦工是否会免费升级现有的 OpenVZ 到 KVM? 不会。主要原因有两个: a) 从技术角度来看,不可能直接将基于 OpenVZ 的 VPS 转换为KVM,因为两种虚拟化技术的运行方式都不同,它们不兼容。 b) KVM 技术的运营成本远高于 OpenVZ,因为它需要更强大的硬件。 因此,我们无法提供对应的 KVM 方案来匹配最低价的 ...

Java之ThreadPoolExecutor

为什么需要线程池? 我们有两种常见的创建线程的方法,一种是继承Thread类,一种是实现Runnable的接口,Thread类其实也是实现了Runnable接口。但是我们创建这两种线程在运行结束后都会被虚拟机销毁,如果线程数量多的话,频繁的创建和销毁线程会大大浪费时间和效率,更重要的是浪费内存。那么有没有一种方法能让线程运行完后不立即销毁,而是让线程重复使用,继续执行其他的任务哪? 这就是...

Java之ConcurrentMap

什么是ConcurrentMap? 提供线程安全和原子保证的Map 主要实现类? ConcurrentHashMap 线程安全 采用CAS(Compare and Swap)技术保证同步, 链表情况下通过synchronized加锁来保证线程安全。具体可参见putVal方法: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2...

Java之BlockingDeque

什么是BlockingDeque? BlockingDeque是继承BlockingDeque的接口,是一个基于链表的双端阻塞队列。 BlockingDeque主要方法行为 像BlockingQueue一样,BlockingDeque是线程安全的, 也不接受null元素,BlockingDeque可以是限制容量的,如果不指定容量,则会指定Integer.MAX_VALUE为默认值。 B...

Java之TransferQueue

什么是TransferQueue? TransferQueue是继承BlockingQueue的接口。 BlockingQueue是生产者等待消费者接收元素,而TransferQueue支持生产者等待消费者接收(transfer(E)),也支持直接加入队列不需要消费者接收(put(E))。Non-blocking和timeout的方式也可以通过tryTransfer来实现,还可以能过hasW...

Java之BlockingQueue

什么是BlockingQueue? BlockingQueue是继承Queue的接口。 BlockingQueue在Queue的基础上增加了两个阻塞行为:当获取队列元素但队列为空时,会阻塞等侍队列中元素再返回;也支持增加元素时,如何队列已满,那么会等待队列有空间时再放入。 BlockingQueue主要方法行为   抛出异常 特殊值 ...

Kubernetes项目

项目介绍 Kubernetes是Google团队发起的开源项目,它的目标是管理跨多个主机的容器,提供基本的部署,维护以及运用伸缩,主要实现语言为Go语言。kubernetes是: 易学:轻量级,简单,容易理解 便携:支持公有云,私有云,混合云,以及多种云平台 可拓展:模块化,可插拔,支持钩子,可任意组合 自修复:自动重调度,自动重启,自动复制 Kubernetes构建于G...