首页
学习
活动
专区
工具
TVP
发布

我是攻城师

专栏作者
492
文章
958413
阅读量
119
订阅数
什么是线程安全?
线程安全在多线程编程时是一个比较重要的概念,我们下先来看下维基百科是如何定义这个概念的:
我是攻城师
2019-03-06
1.9K0
如何避免单例模式被破坏
这里不再讨论单例的模式的n种写法,仅仅讨论如何避免单例模式被破坏,看下面的一个例子:
我是攻城师
2018-11-07
1.4K0
理解Java7和8里面HashMap+ConcurrentHashMap的扩容策略
(2)在(1)的基础上,理解ConcurrentHashMap的并发安全的设计和实现思路
我是攻城师
2018-09-30
1.4K0
理解Java8并发工具类ConcurrentHashMap的实现
前面的文章已经分析过List和Queue相关的接口与并发实现类,本篇我们来分析一下非常Java里面非常重要的一个数据结构HashMap。(注意Set类型在这里我们不在单独分析,因为Set本身并不能算一种数据结构,它可以借助任何其他数据结构如array或者map类来实现。)
我是攻城师
2018-09-30
9330
理解另类的并发安全实现CopyOnWriteArrayList
在Java的并发包java.util.concurrent里面有一个比较有意思现象,针对Map和LinkList都有对应的高效的+线程安全的并发实现类:
我是攻城师
2018-09-30
1.3K0
解读Java阻塞队列BlockingQueue的实现
上篇文章我们介绍了队列的基类接口Queue它定义了所有实现队列的类必须拥有的方法行为而BlockingQueue阻塞队列接口继承了Queue接口,此外BlockingQueue队列接口是Java并发包里面所有实现线程安全队列的基类接口。
我是攻城师
2018-09-30
5K0
理解Java并发工具类CountDownLatch
CountDownLatch相信大家并不陌生,我们在上篇文章中已经分析其实现,这里在简单回顾一下CountDownLatch是基于AQS共享锁构建的一种同步器,它的主要应用场景有两种:
我是攻城师
2018-09-30
1K1
理解Java并发里面的CAS概念
我们知道在Java多线程里面关于共享变量的操作,一定是要使用线程同步来保证线程安全的,一旦涉及线程同步,就需要加锁,一旦加锁就意味着某一个时候只能有一个线程在操作,其他的线程如果没有得到锁就会阻塞起来,此时的线程的状态是BLOCKED,当前面的线程释放锁的时候,系统会自动调度当前的线程进入临界区,这里面存在一个问题,就是线程的上下文切换的问题,虽然比起来进程的上下文切换,线程的上下文切换更轻量级,但仍然也是有一定开销的,比如最简单的i++的例子,那么如何有没有一种不需要加锁也能保证线程安全的数据结构呢?答案是肯定的,这就是今天需要谈到的CAS(Compare And Swap或 Compare And Set)。
我是攻城师
2018-07-23
9940
关于Java里面多线程同步的一些知识
对于任何Java开发者来说多线程和同步是一个非常重要的话题。比较好的掌握同步和线程安全相关的知识将使得我们则更加有优势,同时这些知识并不是非常容易就能熟练掌握的,实际上写出正确的并发代码是一件比较困难的事情。在Java的自带的库里面,已经包含了非常多实用的并发工具类,今天这篇文章,我们主要来学习Java里面synchronized关键字的相关知识。
我是攻城师
2018-07-23
4170
Java程序排查问题利器之Btrace
(一)Btrace的介绍 BTrace是Java的安全可靠的动态跟踪工具。 他的工作原理是通过 instrument + asm 来对正在运行的java程序中的class类进行动态增强,可以在不用重启的情况下监控系统运行情况,方便的获取程序运行时的数据信息,如方法参数、返回值、全局变量和堆栈信息等,并且做到最少的侵入,占用最少的系统资源。 正如上面描述的一些特性,所以btrace一般是用来排查生产环境jvm问题的一款利器,使用它不用再担心应用程序的日志打的不够全,不够细,也不用为了排查问题一遍遍的重启程序。
我是攻城师
2018-05-14
1.2K0
ElasticSearch并发操作之乐观锁的使用
绍了关于ES嵌套索引的增删改,本篇就接着上篇主题继续深入聊一下,上篇的添加和更新操作,其实是不安全的,所有的数据库db系统都会存在并发问题像关系型数据库MySQL,Oracle,SQL Server默认采用的是悲观锁。 在ElasticSearch中采用的乐观锁,下面先熟悉下什么是乐观锁和悲观锁: 悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到
我是攻城师
2018-05-14
1.6K0
为什么用 Java:一个 Python 程序员告诉你
每当我告诉别人我一直在用Java工作时,大家的反应都是: “纳尼!Java?为啥是Java?” 说实话,本人刚开始的时候也是同样的反应。但是由于Java的类型安全,执行性能和坚如磐石的工具,我渐渐地开
我是攻城师
2018-05-14
1K0
火狐浏览器已默认禁用Flash:用户仍可手动开启
北京时间7月14日下午消息,就在Facebook新任首席安全官昨天呼吁放弃Flash技术后,Mozilla火狐浏览器也正式屏蔽了这种技术。 火狐团队主管马克·施密特(Mark Schmidt)通过Twitter证实,这款浏览器已经在最新的一次更新中屏蔽了所有版本的Flash播放器。 施密特指出,火狐用户仍然可以在设置菜单中启用Flash,但该公司显然认为,现代化的互联网已经不再需要这种过时的播放器。 事实上,科技行业对Flash的批评早已有之:已故苹果联合创始人史蒂夫·乔布斯(Steve Jobs)早在20
我是攻城师
2018-05-11
1K0
Java,传奇的一生!
1991年,James Gosling带领着名为“Green Team”的团队着手研发一种新的语言以及专为下一代数字设备和计算机使用的网络系统。历时4年辛勤工作后,该项目最终修成正果并取名为Java。 Java有着类似于C的语法并有“一次编译,随处运行”的灵便性。透过虚拟机机制,可以使代码在底层平台进行运行时编译。回首Java过去的20年,首先是经历了微机时代的兴与衰,然后进入服务器领域及智能电话领域,继而在DHS(美国土安全部)的“不安全”定义下艰难前行,最后投入甲骨文(Oracle)怀抱现正蓄势迸
我是攻城师
2018-05-11
7470
透视JVM之垃圾回收
JVM是JAVA世界的核心,了解它有助于我们更好调试,调优和开发程序,最近散仙在看JAVA特种兵一书,看完觉得,作者写的内容还是挺不错,大家感兴趣的,也可以购买本温故而知新下。 在JVM中,我们
我是攻城师
2018-05-11
6470
男子接陌生短信回“你是谁” 银行卡遭盗刷12次
收到带网址的陌生短信你会怎么处理?打开?回复?不理?可能你有一定的警惕性,不会直接打开,以防手机中毒;但如果你出于好奇,认为回复一下没事,那么就“恭喜”你中招了!!   “我老公两张银行卡,从来没离过身,也没办网银,怎么会被人12次转账呢?”范女士讲述她的困惑。原来,范女士的丈夫耿先生收到一条陌生短信,没敢点开网址,只是回句话“你是?”,没想到半小时内银行卡被转账12次,共转走了5760元钱。 市民:银行卡夜间被转12次账   20日上午,家住王场的耿先生发现手机上有提示,他们家的两张银行卡从19日22:
我是攻城师
2018-05-11
2.2K0
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档