- 博客(10)
- 收藏
- 关注
原创 python实现批量处理服务器日志文件
python登陆服务器进入到指定文件夹下批量删除文件及文件夹首先我们需要将我们处理的机器ip存入到txt文件内,然后将ip都出来后存入一个数组 ips = [] f = open(r"C:\Users\Desktop\ip.txt") #打开文件 data_lists = f.readlines() # 读出的是str类型 for data in data_lists: data1 = data.strip('\n') # 去掉开头和结尾的换行符
2020-10-09 21:41:14 469
原创 并发volatile关键字如何保证可见性和有序性及底层实现原理
volatile用法首先我们先了解一下volatile关键字的用法 ,volatile被喻为轻量级的"synchronized",它只是一个变量修饰符,只能用来修饰变量不能修饰方法和代码块。经典的用法:双重校验锁实现单例public class Singleton { private volatile static Singleton singleton; pri...
2019-05-19 20:41:00 9866 1
原创 Linux命令总结(持续更新)
处理文本常用工具录播屏幕操作 处理文本常用工具findgrepsortuniqtrcutpastewcsedawkfind查找 .txt文件find ~/Desktop/test/ -name "*.txt"正则查找find ~/Desktop/test/ -regex ".*.txt" -regex忽略大小写查找非txt文件find ~/Desktop...
2019-09-09 12:36:43 160
原创 java设计模式之单例模式
单例模式定义确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个模型优点:减少内存开支减少系统的性能开销避免对资源的多重占用可以在系统中设置全局的访问点缺点:单例模式一般没有接口,扩展困难,除了修改代码没有选择 因为单例模式要求“自行实例化”,所以接口对于单例来说没有意义,对测试不利,在并发编程中单例模式没有开发完成,是不能进行测试的。没有接口也不能使用mock的方...
2019-06-25 16:02:24 149
原创 三握四挥
三次握手四次挥手1.三次握手的状态LISTEN:表示服务器的某个socket进入监听状态了,可以接受连接SYN_SENT:表示客户端已经发送过了SYN报文SYN_RCVD:表示接受到了SYN报文ESTABLISHED:表示已经建立连接2.四次握手的状态FIN_WAIT_1:当socket在ESTSABLISHED状态时,想要主动的关闭连接,向对方发送了FIN报文,socket进...
2019-06-04 10:45:06 384
原创 java垃圾回收机制
Java垃圾回收机制Java的垃圾回收机制是的我们作为Java程序员在编码的时候不需要再去考虑内存管理。垃圾回收器通常作为低级别的线程运行,在不可预知的情况下对内存堆中已经死亡或者长时间没有使用的对象进行清除和回收,作为程序员的我们不能实时调用垃圾回收器对某个对象或者说是所有对象进行垃圾回收。可以手动执行System.gc(),通知GC运行,但是GC不一定执行。(因为java语言规范并不保证GC...
2019-06-02 14:12:40 87
原创 (详细)在地址栏web浏览器输入地址后,经历了那些过程
过程1.DNS域名解析,找到对应的IP2.根据IP找到对应的服务器,TCP三次握手建立连接3.发起http请求4.服务器响应http请求,浏览器得到html代码5.浏览器解析html代码,并请求代码中所需的资源(图片等)6.浏览器渲染页面7.服务器关闭TCP连接DNS域名解析DNS是应用层协议,用于将用户提供的主机名解析为ip地址解析过程:1.首先搜索浏览器自身的DNS缓存...
2019-06-01 20:27:59 3683 3
原创 Java实现LRU算法
import java.util.HashMap;public class LRUCache { private Node head; private Node end; private int limit;//表示存储上限 private HashMap<String,Node> hashMap; public LRUCache(...
2019-05-28 17:02:45 2100
原创 多线程一定快吗?
1.上下文切换CPU通过给线程分配CPU时间片来实现多线程执行的,也就是时间片轮转机制,CPU分配给每个线程的时间片非常短,所以我们才会感觉多个线程是同事执行的。CPU在执行执行完一个时间片后会切换到下一个任务,切换之前会保存上一个任务的状态,以便下次切换回这个任务的时候可以加载到这个任务的状态,所以任务从保存到在加载的过程就是一次上下文切换。2.上下文切换对多线程执行的影响因为线程有创建...
2019-05-28 16:59:34 594
原创 如何保证数据库和缓存双写一致???
缓存我们先说一下我们会使用到缓存,也就是为什么要使用缓存:1.为了高性能,假如说我们需要需要复杂的操作才能从数据库查出来结果,而且这个结果在后期不会怎么发生变化,主要是读请求那么直接将数据放在缓存中,再有读请求进来,直接从缓存中拿就可以了。2.为了高并发,在系统请求高峰期时,我们可以将大量数据放在缓存中,这样就可以减少对MySql的访问,我们都知道,缓存是直接基于内存的,内存是天然支持高并发...
2019-05-27 21:02:13 208
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人