work

jdk 中的代理

时间秒杀一切 提交于 2019-12-04 21:17:32
java.lang.reflect.Proxy 代理:语义就是,让某个事物代表另外一个事物。 实现的功能:让不方便出现的事物,有另外的事物进行处理。 对于Java来说,我个人的理解就是:需要类A来代表类B,类B的方法在类A中有实现,且类A不继承自类B。 为了理解,如下类A均是代理类B 那么Java中的源码是如何实现的呢? -------note:查看源码和设计是个相反的过程,需要通过如何使用来看这个源码的实现。 获得代理类的方法由如下该类实现。 java.lang.reflect.Proxy.newProxyInstance(ClassLoader classLoader, Class<?>[] interfaces, InvocationHandler h); Parameters: loader - the class loader to define the proxy class interfaces - the list of interfaces for the proxy class to implement h - the invocation handler to dispatch method invocations to 源码部分查看 该方法返回结果。    return cons .newInstance(new Object[]{h});   源码部分

linux下的EDA——DC使用

浪子不回头ぞ 提交于 2019-12-04 20:49:09
Design Compiler的作用是将RTL级代码转化为门级网表,为后续的时序分析和后仿做准备,其过程主要包括translation、optimization和mapping。DC的实现有两种方式,一种是命令行或脚本的方式,另外一种是图形界面方式。 DC综合需要库的支持,一般我们使用的库为.db的二进制文件。 库分为三个等级:target library、link library和symbol library。 target library 是指RTL级的HDL描述到门级时所需的标准单元综合库,它是由芯片制造商(Foundry)提供的,包含了物理信息的单元模型。 link library 可以是同target_library一样的单元库,也可以是已经底层已经被综合到门级的模块,在由下而上的综合过程中,上一层的设计调用底层已综合模块时,将从link_library中寻找并链接起来。 symbol library是显示电路时,用于标识器件、单元的库。芯片供应商提供的库通常有max,type,min三种类型,代表操作环境为最坏(worst),典型(type),最好(best)三种情况,当然也有其他形式的库如fast.db、slow.db等。 DC综合中还要进行静态时序分析,这一点在很多教程中都有讲解,就不在赘述。需要记得的就是在DC中需要进行时序约束,与在其他软件

work

╄→尐↘猪︶ㄣ 提交于 2019-12-04 20:28:26
------------恢复内容开始------------ 1.创建组distro,其GID为2019 groupadd -g 2019 distro 2.创建用户mandriva, 其ID号为1005;基本组为 distro useradd mandriva -u 1005 -g distro 3. 创建用户mageia,其ID号为1100,家目录为/home/linux useradd -u 1100 -d /home/linux mageia 4. 给用户mageia添加密码,密码为mageedu,并设置用户密码7天后过期 passwd mageia Changing password for user mageia. New password: Retype new password: passwd: all authentication tokens updated successfully. 5. 删除mandriva,但保留其家目录 userdel mandriv 6. 创建用户slackware,其ID号为2002,基本组为distro,附加组peguin 1)groupadd peguin 2)useradd slackware -u 2002 -g distro -G peguin 7. 修改slackware的默认shell为/bin/tcsh chsh

Linux下查看文件和文件夹大小

余生颓废 提交于 2019-12-04 20:08:05
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。 df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。 du可以查看文件及文件夹的大小。 两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。 下面分别简要介绍 df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子: 以下是代码片段: [yayug @yayu ~]$ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 3.9G 300M 3.4G 8% / /dev/sda7 100G 188M 95G 1% /data0 /dev/sdb1 133G 80G 47G 64% /data1 /dev/sda6 7.8G 218M 7.2G 3% /var /dev/sda5 7.8G 166M 7.2G 3% /tmp /dev/sda3 9.7G 2.5G 6.8G 27% /usr tmpfs 2.0G 0 2.0G 0% /dev/shm 参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。 上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted

k8s二进制部署

北战南征 提交于 2019-12-04 17:39:19
k8s二进制部署 1.环境准备 主机名 ip地址 角色 k8s-master01 10.0.0.10 master k8s-master02 10.0.0.11 master k8s-node01 10.0.0.12 node k8s-node02 10.0.0.13 node 初始化操作 关闭防火墙 关闭selinux 关闭swap 安装ntp使时间同步 配置域名解析 配置免密 k8s-master01 到其他机器。 安装docker 2.生成配置CFSSL CFFSL 能够构建本地CA,生成后面需要使用的证书 再k8s-master01上操作 wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64chmod +x cfssl_linux-amd64sudo mv cfssl_linux-amd64 /root/local/bin/cfssl​wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64chmod +x cfssljson_linux-amd64sudo mv cfssljson_linux-amd64 /root/local/bin/cfssljson​wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux

python基础(34):线程(二)

不想你离开。 提交于 2019-12-04 16:39:53
1. python线程 1.1 全局解释器锁GIL Python代码的执行由Python虚拟机(也叫解释器主循环)来控制。Python在设计之初就考虑到要在主循环中,同时只有一个线程在执行。虽然 Python 解释器中可以“运行”多个线程,但在任意时刻只有一个线程在解释器中运行。 对Python虚拟机的访问由全局解释器锁(GIL)来控制,正是这个锁能保证同一时刻只有一个线程在运行。 在多线程环境中,Python 虚拟机按以下方式执行: 设置 GIL 切换到一个线程去运行 运行指定数量的字节码指令或者线程主动让出控制(可以调用 time.sleep(0)) 把线程设置为睡眠状态 解锁 GIL 再次重复以上所有步骤 在调用外部代码(如 C/C++扩展函数)的时候,GIL将会被锁定,直到这个函数结束为止(由于在这期间没有Python的字节码被运行,所以不会做线程切换)编写扩展的程序员可以主动解锁GIL。 1.2 python线程模块的选择 Python提供了几个用于多线程编程的模块,包括thread、threading和Queue等。thread和threading模块允许程序员创建和管理线程。thread模块提供了基本的线程和锁的支持,threading提供了更高级别、功能更强的线程管理的功能。Queue模块允许用户创建一个可以用于多个线程之间共享数据的队列数据结构。

白嫖百度 Tesla V100 笔记(在 AI Studio 上使用 tensorflow 和 pytorch 的方法)

别来无恙 提交于 2019-12-04 02:57:35
登陆百度 AI Studio 并按照教程创建新项目 启动项目并进入控制台 下载 Anaconda3/Miniconda3 安装脚本 安装在 ~/work/*conda3 目录 输入命令 source ~/work/*conda3/bin/activate 进入 conda 环境 安装自己心仪的框架如 tf 和 torch,一切命令从控制台运行,自带的 jupyter 界面当摆设就好,或者当一个好看的命令行用也可以 注:想挖矿可以试试,反正我每次挖矿都被杀,估计有检测 来源: https://www.cnblogs.com/rabbull/p/11828782.html

安卓回调机制的一点理解

雨燕双飞 提交于 2019-12-03 23:14:28
主要看了 https://blog.csdn.net/Wei_Smile/article/details/51040034 此文后的一点点理解 public class Employee { /* * 定义回调接口的成员变量 */ private CallBack mCallBack; /* * 声明回调接口 */ public interface CallBack{ public abstract void work(); } /* * 设置回调接口对象成员变量 */ public void setCallBack(CallBack callBack) { this.mCallBack = callBack; } /* * 调用回调接口对象中的方法 */ public void doWork() { mCallback.work(); } } 这段代码里,在安卓系统的view事件触发后调用doWork函数,即执行mCallback对象的work方法,mCallback是一个接口类(不会java不知道可以这样说么)。此接口类在setCallBack方法中,被传入的实例化的callBack接口(这样说可能不对)修改了,如下: public class Boss { private Employee employee; /* * 为Employee设置回调函数,

pg几个重要的参数调优

[亡魂溺海] 提交于 2019-12-03 22:54:07
介绍 pg数据库在不同的业务场景下,参数最好也需要进行针对的调整。默认值是在确保资源消耗最小的情况下,pg都能够运行起来,不会导致任何致命性的威胁。而实际中,默认的参数需要进行优化来达到性能的最大化,本文介绍一些常用的参数配置。 参数 pg数据库默认安装完后在data目录会有一个postgresql.conf文件,这个里面有非常多的参数来配置数据库。 shared_buffers PostgreSQL既使用自身的缓冲区,也使用内核缓冲IO。这意味着数据会在内存中存储两次,首先是存入PostgreSQL缓冲区,然后是内核缓冲区。这被称为双重缓冲区处理。对大多数操作系统来说,这个参数是最有效的用于调优的参数。此参数的作用是设置PostgreSQL中用于缓存的专用内存量。 shared_buffers的默认值设置得非常低,因为某些机器和操作系统不支持使用更高的值。但在大多数现代设备中,通常需要增大此参数的值才能获得最佳性能。 建议的设置值为机器总内存大小的25%,但是也可以根据实际情况尝试设置更低和更高的值。实际值取决于机器的具体配置和工作的数据量大小。举个例子,如果工作数据集可以很容易地放入内存中,那么可以增加shared_buffers的值来包含整个数据库,以便整个工作数据集可以保留在缓存中。 在生产环境中,将shared_buffers设置为较大的值通常可以提供非常好的性能

关于sessions.ser文件的一些思考

泄露秘密 提交于 2019-12-03 12:27:30
停止服务器时,服务器会先将session里面的内容存到sessions.ser中,这个文件存放在tomcat的安装目录下的work目录中的 localhost目录下的你所部署到tomcat的应用的目录下,如E:\开发者工具\apache-tomcat-6.0.37-windows-x86\apache-tomcat-6.0.37\work\Catalina\localhost\njuptoa1。 如果pojo实现了序列化接口(即implements serializable),则再启动服务器时,用户不需要重新登陆。否则,用户则需要因为服务器重新启动了而重新登录。 来源: CSDN 作者: 黄俊东 链接: https://blog.csdn.net/caihongshijie6/article/details/8917563