开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 7011|回复: 3
收起左侧

[C#作业] 第44天 与 第45天作业

[复制链接]
发表于 2019-6-1 15:51:17 | 显示全部楼层 |阅读模式   广东省揭阳市

今日主要学习内容**

44.1  任务并行库 Parallel - 基本使用 任务退出 结束 取消 什么时候才应该用并行库
44.2  任务并行库 Parallel - 异常处理 异常收集 统一处理异常
45.1 线程同步 - 用户模式 线程模型 CPU缓存引发的问题 内存栅栏的概念及使用
45.2 线程同步 - 用户模式 - 编译器优化 代码重排产生的多线程问题 Volatile的概念 及 使用
45.3 线程同步 - 用户模式 - 线程安全问题的产生 有序性 原子性 可见性 反汇编代码调试 Interlocked的使用

今日作业

  1. 描述一下你对 有序性 原子性 可见性的理解?
  2. volatile 的主要作用是什么?
  3. 当发生并发线程中对共享资源发生不可见性问题时该如何处理?
结帖率:100% (1/1)
发表于 2019-8-19 11:56:54 | 显示全部楼层   江苏省南京市
1、描述一下你对 有序性 原子性 可见性的理解?
有序性:c#代码转化为CPU可识别的代码的过程中,代码会被几次优化,每次优化可能会改变代码执行顺序。。。有序就是保住cpu执行代码的顺序就是我们编写代码的顺序。
原子性:在一个操作中就是cpu不可以在中途暂停然后再调度,既不被中断操作,要不执行完成,要不就不执行。
可见性:当一个线程修改了线程共享变量的值,其它线程能够立即得知这个修改

2、volatile 的主要作用是什么?
语法糖,将被修饰的的变量在操作时加入内存栅栏,强制读写内存

3、当发生并发线程中对共享资源发生不可见性问题时该如何处理?
对资源进行原子操作,保住代码有序性


回复 支持 反对

使用道具 举报

发表于 2019-8-11 17:52:33 | 显示全部楼层   湖南省长沙市

RE: 第44天 与 第45天作业

  1. 描述一下你对 有序性 原子性 可见性的理解?
    1. 有序性,代码不会被CPU 或者 JIT 重排;
      • 原子性,不可拆分的操作;
      • 可见性,多个线程当中同时访问的资源,不应该操作本地线程缓存,应该是共享的大家都可以看到谁对这个数据做了哪些操作。(如果都去访问当前线程缓存,别的线程更新了这个值你也看不到,就是不可见);
  2. volatile 的主要作用是什么
    1. 强制写主内存读主内存;
      • 被Volatile关键字修饰的变量不会被CPU 或 JIT 优化,保持代码的有序性和可见性;
  3. 当发生并发线程中对共享资源发生不可见性问题时该如何处理?
    创建内存栅栏Thread.MemoryBarrier() 或者使用volatile关键字修饰关键数据
回复 支持 反对

使用道具 举报

发表于 2019-6-2 17:00:38 | 显示全部楼层   山东省济南市

1、描述一下你对 有序性 原子性 可见性的理解?
有序性:c#代码转化为CPU可识别的代码的过程中,代码顺序可能会发生改变。。。不影响单个线程的执行,但影响其他线程对本线程中参数的使用----是故有条不紊。
原子性:c#代码转化为CPU可识别的代码的过程中,一行代码可能会被拆分为多行代码。。。我们写的代码正如物理学中的分子,CPU可识别代码才是原子,一个原子中的上下夸克是不可分离的,但相邻原子的执行可能存在分离----是故同生共死。
可见性:共享变量的数据读取应当绕过缓存直接怼内存进行读取----是故公诸于世。

2、volatile 的主要作用是什么?
告诉编辑器我要维护本语句的有序性、可见性,请不要给我删除、优化---是故公平公正。

3、当发生并发线程中对共享资源发生不可见性问题时该如何处理?
创建内存栅栏Thread.MemoryBarrier(); 或 volatile关键字

评分

参与人数 1好评 +1 精币 +10 收起 理由
老郭 + 1 + 10 理解的非常好..优优优

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表