对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了。而并发问题是绝大部分的程序员头疼的问题,

为了更好的理解并发和同步,我们需要先明白两个重要的概念:同步和异步

1、同步和异步的区别和联系

同步就是一件事,一件事情一件事的做。
异步就是,做一件事情,不引响做其他事情。
2、如何处理并发和同步

处理并发和同同步问题主要是通过锁机制,一种是代码层次上的,如java中的同步锁,典型的就是同步关键字synchronized,另外一种是数据库层次上的,比较典型的就是悲观锁和乐观锁。

3、常见并发同步案例分析

案例一:订票系统案例,某航班只有一张机票,假定有1w个人打开你的网站来订票,问你如何解决并发问题(可扩展到任何高并发网站要考虑的并发读写问题)

问题,1w个人来访问,票没出去前要保证大家都能看到有票,不可能一个人在看到票的时候别人就不能看了。到底谁能抢到,那得看这个人的“运气”(网络快慢等)其次考虑的问题,并发,1w个人同时点击购买,到底谁能成交?总共只有一张票。

首先我们容易想到和并发相关的几个方案 :

锁同步同步更多指的是应用程序的层面,多个线程进来,只能一个一个的访问,java中指的是syncrinized关键字。锁也有2个层面,一个是java中谈到的对象锁,用于线程同步;另外一个层面是数据库的锁;如果是分布式的系统,显然只能利用数据库端的锁来实现。假定我们采用了同步机制或者数据库物理锁机制,如何保证1w个人还能同时看到有票,显然会牺牲性能,在高并发网站中是不可取的。

4、常见的提高高并发下访问的效率的手段

首先要了解高并发的的瓶颈在哪里?

可能是服务器网络带宽不够
可能web线程连接数不够
可能数据库连接查询上不去。
根据不同的情况,解决思路也不同。

像第一种情况可以增加网络带宽,DNS域名解析分发多台服务器。
负载均衡,前置代理服务器nginx、apache等等
数据库查询优化,读写分离,分表等等

Java高并发的方式解决相关推荐

  1. Java高并发,如何解决,什么方式解决

     对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了.而并发问题是绝大部分的程序员头疼的问题, 但话又说回来了,既然逃避不掉,那我们就坦然面对吧~今天就让我们一 ...

  2. java高并发案例详细讲解

    对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了.而并发问题是绝大部分的程序员头疼的问题, 但话又说回来了,既然逃避不掉,那我们就坦然面对吧~今天就让我们一起来研 ...

  3. 关于高并发的一些解决办法(转载)

    本文转载于博客园     魔流剑的博客    网址:  https://www.cnblogs.com/lr393993507/p/5909804.html   想看原版的自行点击传送门. 对于我们开 ...

  4. c语言 java高并发_Java高并发解决方式 2019.docx

    Java高并发解决方式 2019 目录 一.消息队列 (1)应用场景 1.1 解耦和 1.2 异步处理 1.3 流量削峰 (2)消息队列缺点 2.1 系统可用性降低 2.2 系统复杂度提高 2.3 一 ...

  5. java redis 并发_Redis高并发问题的解决方法

    本文讲述了Redis高并发问题的解决办法.分享给大家供大家参考,具体如下: redis为什么会有高并发问题 redis的出身决定 redis是一种单线程机制的nosql数据库,基于key-value, ...

  6. cpu高 thread vm_阿里大佬总结,Java高并发必读!

    作者:wxdoop 原文:https://blog.csdn.net/qq_36235098 来源:前程有光 前言 进程是计算机中程序关于某几何数据集合上的一次运行活动,是系统进行资源分配和调度的基本 ...

  7. Java高并发编程:活跃性危险

    Java高并发程序中,不得不出现资源竞争以及一些其他严重的问题,比如死锁.线程饥饿.响应性问题和活锁问题.在安全性与活跃性之间通常存在依赖,我们使用加锁机制来确保线程安全,但是如果过度地使用加锁,则可 ...

  8. SpringBoot实现Java高并发秒杀系统之DAO层开发(一)

    SpringBoot实现Java高并发秒杀系统之DAO层开发(一) 秒杀系统在如今电商项目中是很常见的,最近在学习电商项目时讲到了秒杀系统的实现,于是打算使用SpringBoot框架学习一下秒杀系统( ...

  9. Java高并发编程详解系列-7种单例模式

    引言 在之前的文章中从技术以及源代码的层面上分析了关于Java高并发的解决方式.这篇博客主要介绍关于单例设计模式.关于单例设计模式大家应该不会陌生,作为GoF23中设计模式中最为基础的设计模式,实现起 ...

最新文章

  1. 最近做手机端,GPS,微信QQ分享总结的问题
  2. COMET | 概念学习使机器具有人的思维方式
  3. 三星全球首家量产18nm DRAM
  4. mysql syncbinlog_Mysql之sync-binlog参数
  5. Java双大括号_什么是Java中的双BRACE初始化?
  6. 【牛客 - 369A】小D的剧场(线性dp)
  7. 2021信服云创新峰会:托管云成上云第三种选择
  8. win98 老电脑 文件导出_UGNX利器:轻量化建模,很多人还傻傻的关注电脑配置
  9. 关于梯度下降法、牛顿法、高斯-牛顿、LM方法的总结
  10. 硬件工程师成长之路(2)——电路设计
  11. php发送邮件的方式,php 发送邮件几种方式
  12. 大二实训(二)问答题
  13. flash air java_Flash Air 打包安卓 ane
  14. Wifi网络共享----Wifi共享精灵
  15. Excel如何跳过空值自动编号呢
  16. 详解目标检测的评价指标
  17. 计算机组织与结构性能设计答案,计算机组织及结构—性能设计第八版答案-COA8e.pdf...
  18. oem是代工还是贴牌_OEM贴牌和ODM贴牌的区别
  19. Moloch安装与使用
  20. 【华为OD笔试真题JAVA实现】幼儿园找出同班的小朋友

热门文章

  1. 文言文编程可以编译成PHP吗,GitHub开源的文言文编程语言、程序生成中国山水画、格律诗编辑程序...
  2. 联想(逻辑)与想象——形象思维与抽象思维感想
  3. 阿里云中间件有哪些?这里最全面
  4. 人脸识别签到 电子班牌加速校园智慧化进程
  5. Python商业数据可视化实战
  6. 第18章 MetaFile
  7. keyshot操作记录
  8. bss、data和rodata区别与联系
  9. 计算机本科毕业论文水电厂,水电站计算机监控系统 (本科)毕业论文设计.doc...
  10. Codeforces 841 B Godsend