搜车的手写代码
面试需要手写一段死锁:
1 | package SynchronizedLock; |
触发线程:
1 | package SynchronizedLock; |
2018-10-24 天猫笔试
1 | //评测题目: 1.利用多线程有序打印(假定打印为IO阻塞耗时操作)出0~100的所有自然数(使用线程池编码) |
1 | //获取一个最小的栈值 |
蚂蚁金服面试两个线程交替打印1-100的整数
1 | package com.souche.study.PrintData; |
1 | package com.souche.study.PrintData; |
1 | package com.souche.study.PrintData; |
字符串反转
1 | package com.souche.study.PrintABC; |
如何快速定位线上cpu飙升(linux环境)
1 | //1. 通过top命令查看到cpu占用最高的pid 这个pid是processid |
大文件排序
内存有限的情况下,进行大文件排序,基本思想是归并排序。这里记录一下思维漏洞,在进行分治之后,每个小文件都是有序的,这里怎么对小文件进行合并?之前想到这个地方经常会陷入思维误区,想把小文件如何在内存中进行比较,或者如何定位到文件的具体位置,如果写到文件位置的缝隙中?记录一下这个思维误区。其实可以通过例如我们将文件分成了三份,三份文件都排好序:
1 | -- 文件1 有序 数字 1 3 7 |
这里把每个文件的最小值先加载到内存,内存中就是三个数值的数组 a[3](0 1 2分别保存当前每个文件队列的当前最小值,当前最小值判定为所有文件最小值之后,将最小值pop之后继续读本文件下一行的最小值)。这里可以假设内存只能容下三个数字,每个利用readline一行一行往下读。
分布式事务如何保证一致性
面试记录,曾经在公司内部topic中讨论过这个主题,面试的时候竟然忘了,这里列举几种保证分布式事务一致性的方案。
两阶段提交/XA方案
Spring+JTA两阶段提交保证一致性,这里有一个事务管理器的概念,