java中stringbuffer线程安全分析的示例
这篇文章主要介绍java中stringbuffer线程安全分析的示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
常用的java框架有哪些
1.SpringMVC,Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架。2.Shiro,Apache Shiro是Java的一个安全框架。3.Mybatis,MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。4.Dubbo,Dubbo是一个分布式服务框架。5.Maven,Maven是个项目管理和构建自动化工具。6.RabbitMQ,RabbitMQ是用Erlang实现的一个高并发高可靠AMQP消息队列服务器。7.Ehcache,EhCache 是一个纯Java的进程内缓存框架。
在对于一些类作用于线程时,安全系数高的线程更推荐大家使用,在尽可能的程度上降低程序出错的可能性。对于本篇所要提到的StringBuffer而言,在其缓冲区中有多个线程的存在,我们在查询其内部方法时发现了锁的存在。现在我们就StringBuffer线程、锁的应用、线程安全分析逐步带来介绍。
1.StringBuffer线程说明
Java.lang.StringBuffer线程安全的可变字符序列。一个类似于String的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。
可将字符串缓冲区安全地用于多个线程。可以在必要时对这些方法进行同步,因此任意特定实例上的所有操作就好像是以串行顺序发生的,该顺序与所涉及的每个线程进行的方法调用顺序一致。
2.synchronized锁的应用方式
(1)修饰实例方法,对当前实例加锁
public synchronized StringBuffer append(int i) { toStringCache = null; super.append(i); return this; }
(2)修饰静态方法,对当前类对象加锁
public static synchronized void test(){ i++; }
(3)修饰代码块,对指定对象加锁
public boolean contentEquals(CharSequence cs) { // Argument is a StringBuffer, StringBuilder synchronized(cs) { return nonSyncContentEquals((AbstractStringBuilder)cs); } }
3.线程安全分析
StringBuffer buffer= new StringBuffer();buffer.append("d");然后进入appen里面看看@Override public synchronized StringBuffer append(String str) { toStringCache = null; super.append(str); return this; }
看到synchronized,在方法上面,说明是有线程安全的。
以上是“java中stringbuffer线程安全分析的示例”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网行业资讯频道!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341