写点什么

2021Java 大厂面试集合,java 多线程

发布于: 18 小时前

前言

最近刷到了一句耐人寻味的话,“解决雪崩问题的最好办法是不发生雪崩”。


不论是在硅谷互联网公司里还是在国内的互联网平台上,曾多次遇到过海量规模的交易瞬间吞噬平台的悲惨故事。


核心的解决方案大同小异,都是通过缓存,逐层减少流量的冲击,保护用户的体验和平台的服务可用。


金融、财务行业有现金为王的说法,互联网技术行业用“缓存为王"清楚地概括了缓存的重要性。


而本文深入浅出地讨论了 Ehcache、Memcached、Redis、 Tair、 EVCache 等各种常用缓存开源系统的方案及精粹。


虽然读过不少国外有关缓存的技术专著,大多数偏原则和理论,具体实施方案和案例较少,特别是结合中国互联网技术实践的更少。


所以本文实际上填补了缓存技术文献在这方面的空白。尤其是结合微博、社交和电商平台的应用实践探讨,对想学习如何利用缓存技术解决实践中具体问题的读者大有裨益。




public class MyRunnable implements Runnable {
private static int ticketCount = 100;


@Override
public void run() {
while(true){
if("窗口一".equals(Thread.currentThread().getName())){
//同步方法
boolean result = synchronizedMthod();
if(result){
break;
}
}


if("窗口二".equals(Thread.currentThread().getName())){
//同步代码块
synchronized (MyRunnable.class){
if(ticketCount == 0){
break;
}else{
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
ticketCount--;
System.out.println(Thread.currentThread().getName() + "在卖票,还剩下" + ticketCount + "张票");
}
}
}


}
}


private static synchronized boolean synchronizedMthod() {
if(ticketCount == 0){
return true;
}else{
try {
Thread.sleep(10);
} catch (InterruptedException e) {# 最后
每年转战互联网行业的人很多,说白了也是冲着高薪去的,不管你是即将步入这个行业还是想转行,学习是必不可少的。作为一个Java开发,学习成了日常生活的一部分,不学习你就会被这个行业淘汰,这也是这个行业残酷的现实。
如果你对Java感兴趣,想要转行改变自己,那就要趁着机遇行动起来。或许,这份**限量版的Java零基础宝典**能够对你有所帮助。
领取这份**Java零基础宝典**,**[只需要点击这里即可免费下载](https://gitee.com/vip204888/java-p7)**
![](https://static001.geekbang.org/infoq/b8/b8653a6df735249125d2d56f2396ff9b.png)
![](https://static001.geekbang.org/infoq/eb/eb0d6e725e60a5d72c317cf3e215f095.png)
复制代码


用户头像

还未添加个人签名 2021.07.29 加入

还未添加个人简介

评论

发布
暂无评论
2021Java大厂面试集合,java多线程