首页 > 编程语言 >并发编程的优缺点

并发编程的优缺点

时间:2023-08-25 22:23:09浏览次数:43  
标签:编程 优缺点 原子 问题 并发 线程 多线程

为什么要使用并发编程(并发编程的优点)

• 充分利用多核 CPU 的计算能力:通过并发编程的形式可以将多核 CPU 的计 算能力发挥到极致,性能得到提升

• 方便进行业务拆分,提升系统并发能力和性能:在特殊的业务场景下,先 天的就适合于并发编程。现在的系统动不动就要求百万级甚至千万级的并 发量,而多线程并发编程正是开发高并发系统的基础,利用好多线程机制 可以大大提高系统整体的并发能力以及性能。面对复杂业务模型,并行程 序会比串行程序更适应业务需求,而并发编程更能吻合这种业务拆分 。

并发编程有什么缺点

并发编程的目的就是为了能提高程序的执行效率,提高程序运行速度,但是并发 编程并不总是能提高程序运行速度的,而且并发编程可能会遇到很多问题,比如 **:内存泄漏、上下文切换、线程安全、死锁**等问题。

并发编程三要素是什么?

在 Java 程序中怎么保证多线程的运行安全?

并发编程三要素(线程的安全性问题体现在):

原子性:原子,即一个不可再被分割的颗粒。原子性指的是一个或多个操作要么 全部执行成功要么全部执行失败。

可见性:一个线程对共享变量的修改,另一个线程能够立刻看到。 (synchronized,volatile)

有序性:程序执行的顺序按照代码的先后顺序执行。

(处理器可能会对指令进行 重排序) 出现线程安全问题的原因:

• 线程切换带来的原子性问题

• 缓存导致的可见性问题

• 编译优化带来的有序性问题 解决办法:

• JDK Atomic 开头的原子类、synchronized、LOCK,可以解决原子性问题

• synchronized、volatile、LOCK,可以解决可见性问题

• Happens-Before 规则可以解决有序性问题 并行和并发有什么区别?

标签:编程,优缺点,原子,问题,并发,线程,多线程
From: https://www.cnblogs.com/szza/p/17658058.html

相关文章

  • python网络编程
    1.套接字套接字(Socket)是实现网络编程进行数据传输的一种技术手段,网络上各种各样的网络服务大多都是基于Socket来完成通信的。socket是传输层提供给应用层的编程接口。所以,套接字socket编程分为TCP与UDP两类。在python中,通过Python套接字编程模块:importsocket提供socket......
  • QT-网络编程
    说明当涉及Qt网络编程时,通常会使用Qt提供的网络模块,其中最常用的是QTcpSocket和QTcpServer类QTcpSocketQTcpSocket是Qt网络模块中的一个类,用于实现TCP客户端的网络通信。它提供了一个接口,允许你连接到远程主机并在网络上发送和接收数据1.构造函数QTcpSocket(QOb......
  • 解放生产力orm并发更新下应该这么处理求求你别再用UpdateById了
    合集-easy-query(7) 1.献给转java的c#和java程序员的数据库orm框架05-222.javaer你还在手写分表分库?来看看这个框架怎么做的干货满满05-263.你没见过的分库分表原理解析和解决方案(一)06-074.你没见过的分库分表原理解析和解决方案(二)06-305.我真的不想再用mybatis和其......
  • c# .NET 高级编程 高并发必备技巧 - 锁
    锁最为常见的应用就是高并发的情况下,库存的控制。本次只做简单的单机锁介绍。直接看代码:每请求一次库存-1.假如库存1000,在1000个人请求之后,库存将变为0。publicintReduce0(){intr=0;stringkey="stock";stringstoc......
  • promise 并发请求-Promise.all()/Promise.allSettle()
    方法定义//request.js定义exportfunctionall(requests,callback){Promise.all(requests).then(params=>callback(params)).catch(error=>{console.error(error)})}exportfunctionallSettle(requests,callback){Promise.allSettl......
  • 高并发web开发框架解决方案
    对于大型网站来说,所采用的技术涉及面极其广泛,从硬件到软件、编程语言、数据库、Web服务器、防火墙等各个领域都有了很高的要求,提高系统高并发性能方案措施:减少数据库访问次数,文件和数据库分离,大数据分布式存储,服务器的集群负载均衡,页面缓存的使用,nosql内存数据库代替关系型数据库......
  • Android并发编程高级面试题汇总(含详细解析 九)
    Android并发编程高级面试题汇总最全最细面试题讲解持续更新中......
  • 钡铼技术BL102 PLC网关教程:如何使用4G网络连接西门子PLC进行远程编程?
    1、打开网关配置软件,点击“搜索”,搜索局内网网关BL1022、搜索到的网关设备,选择要配置的设备,双击登录3、输入登录密码登录,默认是1234564、配置网关网口采集PLC,远程下载暂时只支持LAN口下PLC设备。示例S7-200SMART的IP地址是192.168.5.16。故点击LAN修改IP地址为:192.168.5.1,点击OK。......
  • 编程真好玩Python_2.1你的第一个程序HelloWorld
    一、作业效果。(1)程序首先显示信息:“你好,世界!”(2)询问你的名字(3)输入后,屏幕显示“你好,×××!”二、完成(1)新建文件夹,保存-命名(2)运行代码print("Hello,World!")person=input("Whatisyourname?\n")print("Hello,",person)(3)在编辑窗口中,选择Run-RunModule,运行程序......
  • 编程真好玩Python_1、认识Python
    一、什么是编程1、Scratch与Python区别Scratch是一种可视化的编程语言,适合于创作游戏、动画或者互动故事。Python使用文字来编程。二、IDLE结构1、壳窗口。壳窗口无法保存代码,但是Python打印的任何东西都会出现在壳窗口中。        2、编辑窗......