一 只 程 序 原

一 只 程 序 原

有人问我,我就会讲。

死磕Juc(一)之CompletableFuture

死磕Juc(一)之CompletableFuture一、Future和Callable接口Future接口定义了操作异步任务执行一些方法,如获取异步任务的执行结果、取消任务的执行、判断任务是否被取消、判断任务执行是否完毕等。Callable接口中定义了需要有返回的任务需要实现的方法@Function

基于ERC20协议的智能合约demo

pragma solidity ^0.8.0;contract ecr20 { // 账户余额 mapping (address => uint256) private _balances; // 代币名称 string private _name; // 代币符

搭建自己的梯子(科学上网)

搭建自己的梯子(科学上网)作为一个程序员,无论如何得会科学上网,当然只是为了工作方便,保证不会干违法的事。一、科学上网的方法一般科学上网有两种方法:1.1 购买第三方机场服务一个月十来块,经济实惠,好处是不用自己维护,还可以选区域节点。一个好的机场,大多数节点可用,但是像我这样,基本都是超时,挺难受

为什么我们需要Pod?

为什么我们需要Pod?本文整理于极客时间: 深入剖析 Kubernetes (geekbang.org),侵删。在前面的文章中,我详细介绍了在 Kubernetes 里部署一个应用的过程。在这些讲解中,我提到了这样一个知识点:Pod,是 Kubernetes 项目中最小的 API 对象。如果换一个更

白话容器基础(四):重新认识Docker容器

白话容器基础(四):重新认识Docker容器在前面的三次分享中,我分别从 Linux Namespace 的隔离能力、Linux Cgroups 的限制能力,以及基于 rootfs 的文件系统三个角度,为你剖析了一个 Linux 容器的核心实现原理。备注:之所以要强调 Linux 容器,是因为比如

白话容器基础(三):深入理解容器镜像

白话容器基础(三):深入理解容器镜像在前两次的分享中,我讲解了 Linux 容器最基础的两种技术:Namespace 和 Cgroups。希望此时,你已经彻底理解了“容器的本质是一种特殊的进程”这个最重要的概念。而正如我前面所说的,Namespace 的作用是“隔离”,它让应用进程只能看到该 Nam

白话容器基础(二):隔离与限制

白话容器基础(二):隔离与限制本文整理于极客时间: 深入剖析 Kubernetes (geekbang.org),侵删。在上一篇文章中,我详细介绍了 Linux 容器中用来实现“隔离”的技术手段:Namespace。而通过这些讲解,你应该能够明白,Namespace 技术实际上修改了应用进程看待整个

白话容器基础(一):从进程说开去

白话容器基础(一):从进程说开去本文整理于极客时间: 深入剖析 Kubernetes (geekbang.org),侵删。先明白一个道理:容器本身没有价值,有价值的是“容器编排”。但是:容器,到底是怎么一回事儿?容器其实是一种沙盒技术。顾名思义,沙盒就是能够像一个集装箱一样,把你的应用“装”起来的技

微信登录实现(PC端)

微信登录实现(PC端)中心思想:通过微信扫码和微信交互,最终拿到openid(相当于数据库主键id,是微信用户唯一标识),然后通过openid和业务交互。具体实现:一共4个步骤,其实不论是微信授权登录,还是QQ授权登录,或者支付宝授权登录…等只要是OAuth2.0协议都是这逻辑1 第一步:用户同意授

Java强化之线程池

Java强化之线程池一、什么是线程池线程池其实就是一种多线程处理形式,处理过程中可以将任务添加到队列中,然后在创建线程后自动启动这些任务。这里的线程就是我们前面学过的线程,这里的任务就是我们前面学过的实现了Runnable或Callable接口的实例对象;二、为什么使用线程池使用线程池最大的原因就是