zoukankan      html  css  js  c++  java
  • 关于线程安全的一些自己的见解。

    对于线程安全问题,我们知道在多线程中,线程的安全问题是必须要考虑的问题,但是对于产生线程不安全的原因,我们在大学的时候学习数据结构的时候我们知道线程的安全是对同一变量进行修改。还是先上百度的解释:

    线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。
    线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据
    我的理解是这样的。对于线程的安全中问题 其实是很简单的,你比如说你跟另外一个小伙伴在网上都要去对你们非常关心的一个东西去做修改,加入你们两个是同时修改的这个值,那你想这个值最终保留下来的是你修改的还是你的小伙伴修改的呢
    这是比较直白的一种解释方式,那么在这种情况下如果要修改的这个值是线程安全的,也就是你们两个不能同时去修改这个值,你想想,如果是你在修改的时候,你的小伙伴就要等着你修改完成之后才可以修改,这样是不是就最终是你们想要的修改结果了呢。
    患有在我们的计算机中,我们都知道计算机中是以一个个的进程来存在的,而且每个进程中都还有很多的线程,那么这些线程要同时去操作某个计算机中的变量的时候,这个变量如果不是线程安全的华那你是无法预料
    这个变量最终修改后的值的。
    那么在我们的实际开发中,用我们研发副总监的话就是我们能不使用多线程涉及到线程安全的代码就不用,如果真的要用最好使用jdk中自带的线程安全的类。尽量少的去用sychronized这些关键字。当然这里你换药
    知道jdk中自带的那些类是线程安全的???今天先写道这里,。明天晚上继续对线程安全进行侃侃而谈。下班回家了要。。
  • 相关阅读:
    Shell脚本中$0、$#、$@等的意义
    shell脚本中常见的一些特殊符号和作用详解
    shell脚本中的反引号,单引号,双引号与反斜杠
    Shell中反引号(`)与$()用法的区别
    自己在linux上编译、链接、动态库和静态库的学习笔记
    让ie6 7 8 9支持原生html5 websocket
    解决浏览器不兼容websocket
    WebSocket兼容到低版本浏览器
    UART和RS232/RS485的关系,RS232与RS485编程
    TTL和RS232之间的详细对比
  • 原文地址:https://www.cnblogs.com/duanxiaojun/p/6827491.html
Copyright © 2011-2022 走看看