JAVA基础
文章平均质量分 65
toprobust
学无止境,在有限的生命中每天进步一点点
展开
-
通信方式
FC函数调用SC系统调用 80中断RPC远程过程调用IPC进程间通信(Inter-Process Communication)原创 2020-08-19 15:57:16 · 216 阅读 · 0 评论 -
Linux-IO模型之多路复用器
NIO的优劣优势:通过1个或几个线程,解决N个IO连接的处理问题劣势:每循环一次,O(N)的时间复杂度,有多少个客户端连接就有多少次系统调用recv,每次系统调用都会涉及到软中断,线程在用户态和内核态的切换保护现场等操作多路复用解决了什么:只对有事件发生的客户端连接发起系统调用多路复用器的实现目前linux下只有同步模型下的多路复用器POXIS协议的selectman 2 select可以看到如下的函数int pselect(int nfds, fd_set *readfds,原创 2020-07-08 10:27:32 · 350 阅读 · 0 评论 -
Linux-IO模型之NIO
C10K问题BIO的弊端accept阻塞服务端新建线程调用系统调用clone阻塞因为内核提供给我们调用的API是阻塞的,所以优化也就是选择新的APINIO在kernel层面,比如BIO中用的socket,可通过参数设置成非阻塞使用man 2 socket 查看系统调用socket函数的设置可以看到下面这句话,可以对socket设置成非阻塞SOCK_NONBLOCK Set the O_NONBLOCK file status flag on the new open file de原创 2020-07-07 15:27:57 · 287 阅读 · 0 评论 -
Linux-IO模型之BIO
说到IO模型,先来了解几个专用术语:我们平时说的阻塞或非阻塞是指应用程序在发起 I/O 操作时,是立即返回还是等待。而同步和异步,是指应用程序在与内核通信时,数据从内核空间到应用空间的拷贝,是由内核主动发起还是由应用程序来触发。有异步阻塞模型吗?没有,都异步了,还要阻塞?有病吧!观察IO模型过程中用到的指令:strace -ff -o out cmd-ff 捕捉所有线程-o 捕捉到的每个线程的输出文件以什么开头cmd 捕捉的命令,比如 java -jar服务端codeimport j原创 2020-07-06 21:58:27 · 428 阅读 · 0 评论 -
二进制基础及位运算
二进制计算每一位上的数基数的索引次幂相加之和例如:0101=12º+12²=5第一位1基数2的索引0次幂+第三位1*基数2的2次幂等于5其他进制计算等同十进制转2进制:除2求余法除2求余倒序表示简便算法:记住2的10次幂1024内的次幂值...原创 2019-12-04 16:06:09 · 5109 阅读 · 0 评论 -
有符号右移和无符号右移
计算机表示数字正负不是用+ -加减号来表示,而是用最高位数字来表示,0表示正,1表示负有符号右移若正数,高位补0,负数,高位补1 -> 一句话概括:高位补符号位正数例如:8 >> 2偶数情况8的二进制为 0000 0000 0000 0000 0000 0000 0000 1000右移两位后 0000 0000 0000 0000 0000 0000 000...原创 2019-12-04 09:46:25 · 6511 阅读 · 4 评论 -
java类的初始化
##什么情况下会触发初始化初始化一个类,包括执行这个类的静态初始化和初始化在这个类中声明的静态字段。根据Java语言规范,在首次发生下列任意一种情况时,一个类或接口类型T将被立即初始化。1)T是一个类,而且一个T类型的实例被创建。2)T是一个类,且T中声明的一个静态方法被调用。3)T中声明的一个静态字段被赋值。4)T中声明的一个静态字段被使用,而且这个字段...原创 2017-07-11 10:23:54 · 525 阅读 · 0 评论