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

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

    线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。
    线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据
    我的理解是这样的。对于线程的安全中问题 其实是很简单的,你比如说你跟另外一个小伙伴在网上都要去对你们非常关心的一个东西去做修改,加入你们两个是同时修改的这个值,那你想这个值最终保留下来的是你修改的还是你的小伙伴修改的呢
    这是比较直白的一种解释方式,那么在这种情况下如果要修改的这个值是线程安全的,也就是你们两个不能同时去修改这个值,你想想,如果是你在修改的时候,你的小伙伴就要等着你修改完成之后才可以修改,这样是不是就最终是你们想要的修改结果了呢。
    患有在我们的计算机中,我们都知道计算机中是以一个个的进程来存在的,而且每个进程中都还有很多的线程,那么这些线程要同时去操作某个计算机中的变量的时候,这个变量如果不是线程安全的华那你是无法预料
    这个变量最终修改后的值的。
    那么在我们的实际开发中,用我们研发副总监的话就是我们能不使用多线程涉及到线程安全的代码就不用,如果真的要用最好使用jdk中自带的线程安全的类。尽量少的去用sychronized这些关键字。当然这里你换药
    知道jdk中自带的那些类是线程安全的???今天先写道这里,。明天晚上继续对线程安全进行侃侃而谈。下班回家了要。。
  • 相关阅读:
    超级好用的excel导出方法,比phpexcel快n倍,并且无乱码
    PHP生成随机数;订单号唯一
    php判断检测一个数组里有没有重复的值
    修改git 提交的用户名和用户Email命令
    利用 PHP CURL zip压缩文件上传
    Linux 重启 PHP-FPM 命令
    Postgresql 时间串转换格式
    rollup node.js 打包工具
    PHP正则表达式提取html超链接中的href地址
    解决Ubuntu系统下 mysql 远程连接失败的问题 ERROR 2003 (HY000): Can't connect to MySQL server on 'xxx.xxx.xx.xx' (110)
  • 原文地址:https://www.cnblogs.com/duanxiaojun/p/6827491.html
Copyright © 2011-2022 走看看