当前位置: 首页 > news >正文

多线程累加探索思考

写了一段简单的多线程累加代码,本意是测试一下C++多线程通过互斥锁对临界区进行保护。代码符合预期,但是心血来潮测了一下,如果不加互斥锁结果会怎么样。发现循环比较小的情况下,不加锁依然正确,如果循环次数超过一定数量,结果就出错了。

这一段然我有几点思考:

1、初级程序员(没错,说的就是我),有一个通病就是当代码运行结果不符合预期的时候就会想当然的认为是不是计算机硬件或者操作系统环境有问题,当代码运行结果符合预期,通常会认那都是自己的功劳,而不会反着想;

2、随着计算机硬件性能的提高,底层编译器会从一定程度上屏蔽由于程序员人为因素导致的问题。比如以前做GPU CUDA开发,GPU性能比较差,那么对CUDA核函数访存的要求就比较高,比如要优化到多少内存大小以内才能进行合并访存,后来GPU硬件性能提高了,这些硬件自动处理了;

3、引申思考,我认为未来程序员的能力相对于以前的程序员会越来越弱,因为很多问题对应用层面开发的程序员给屏蔽了。就相当于现在很多车都是自动挡的,那么这些司机的水平相较于以前的手动挡司机来说是要更差的。而且现在很多车还配有高阶的自动驾驶辅助功能,包括自动泊车这些,如果这些成为标配,可能以后司机都不知道怎么倒车了。

4、现在很多项目要求用现代C++进行开发,那么会使用现代C++进行开发,会用C++的最新特性到底是一个程序员高水平的体现还是一个程序员水平低呢?一个会用剑的武林高手遇到一个有枪的菜鸟,你愿意成为谁?这是我的问题。

http://www.xdnf.cn/news/70327.html

相关文章:

  • 在统信UOS 1060上实现自动关机
  • Java并发:资源共享
  • 在CSDN的1095天(创作纪念日)
  • ECMAScript
  • 网络结构及安全科普
  • 【MySQL】表的约束(主键、唯一键、外键等约束类型详解)、表的设计
  • 前端工程化:构建高质量 Web 项目的现代方法论
  • Keil5没有stm32的芯片库
  • 反转字符串
  • 【CUDA 】第5章 共享内存和常量内存——5.2 共享内存的数据分布(2)
  • Nacos 客户端 SDK 的核心功能是什么?是如何与服务端通信的?
  • 【集群IP管理分配技术_DHCP】二、DHCP核心功能与技术实现
  • Openwrt 编译树莓派4B固件
  • 【C++】入门基础知识(下)
  • JAVA实战开源项目:医院资源管理系统 (Vue+SpringBoot) 附源码
  • leetcode day 35 01背包问题 416+1049
  • buildadmin 自定义单元格渲染
  • 【STM32单片机】#10.5 串口数据包
  • 在线打开查看cad免费工具dwg, dxf格式工具网站
  • 14.电容的高频特性在EMC设计中的应用
  • Novartis诺华制药社招入职综合能力测评真题SHL题库考什么?
  • 抱佛脚之学SSM三
  • Anaconda Prompt 切换工作路径的方法
  • RNA Club | CRISPR-Cas 免疫系统的作用原理及其与噬菌体的对抗-王艳丽教授讲座笔记
  • Activity之间交互
  • unity动态骨骼架设+常用参数分享(包含部分穿模解决方案)
  • 22. git show
  • MyBatis-Plus 实战:优雅处理 JSON 字段映射(以 JSONArray 为例)
  • 12个领域近120个典型案例:2024年“数据要素X”大赛典型案例集(附下载)
  • 网络编程4