当前位置: 首页 > news >正文

电子商务网站建设评价怎么创建自己的网站

电子商务网站建设评价,怎么创建自己的网站,域名安装wordpress,wordpress首页生成静态页面StringBuilder和StringBuffer的用法是一致的,平常我们最多用到的方法就是append()拼接字符串和reverse()翻转字符串等等。二者看起来方法是一样的,确实也是这样,其实它俩唯一的不同在于StringBuilder不是线程安全的,而StringBuffe…

        StringBuilder和StringBuffer的用法是一致的,平常我们最多用到的方法就是append()拼接字符串和reverse()翻转字符串等等。二者看起来方法是一样的,确实也是这样,其实它俩唯一的不同在于StringBuilder不是线程安全的,而StringBuffer则是线程安全的

证明如下

验证StriingBuilder

我们分别用两个线程对同一StringBuilder对象追加不同的字符,查看结果

public static void main(String[] args) throws InterruptedException {StringBuilder builder = new StringBuilder();StringBuffer buffer = new StringBuffer();Thread t1 = new Thread(new Runnable() {@Overridepublic void run() {for (int i = 0; i < 1000; i++) {builder.append("A");}}});Thread t2 = new Thread(new Runnable() {@Overridepublic void run() {for (int i = 0; i < 1000; i++) {builder.append("B");}}});t1.start();t2.start();t1.join();t2.join();System.out.println(builder.toString());}

结果:

        我们发现,线程1(追加字符‘a’)运行得好好的,突然线程2(追加字符‘b’)也加了进来,两个线程轮流对StringBuilder对象进行操作10f53a0618f5473795700a3229217c5f.png        此外,还发生了下标越界的报错,可能是因为两个线程在争夺资源的时候发生的错误,毕竟StringBuilder的底层其实是一个char数组,线程 A 想要在位置 i 插入字符,而线程 B 想要在相同的位置 i 插入不同的字符。这将导致一个或者两个操作执行失败或者得到错误结果。所以运行结果中不只有AB两种字符,还有一个类似乱码的字符

744458881fbc4fc98d044092ddba1ff5.png

结论:StringBuilder不是线程安全的

验证StringBuffer

验证方法和上面一直,我们分别用两个线程对同一StringBuffer对象追加不同的字符,查看结果

public static void main(String[] args) throws InterruptedException {StringBuilder builder = new StringBuilder();StringBuffer buffer = new StringBuffer();Thread t1 = new Thread(new Runnable() {@Overridepublic void run() {for (int i = 0; i < 1000; i++) {buffer.append("A");}}});Thread t2 = new Thread(new Runnable() {@Overridepublic void run() {for (int i = 0; i < 1000; i++) {buffer.append("B");}}});t1.start();t2.start();t1.join();t2.join();System.out.println(buffer.toString());}

 结果:

        我们发现,尽管是两个线程,但是并没有因为抢占公共资源(同一个StringBuffer对象)而交替执行,而是很丝滑快速的执行完成,更没有报错。 

a8ec8fad90364e3586b2a8e167f63aaa.png

结论:StringBuffer是线程安全的 

总结

两个线程同时操作同一个 StringBuilder 对象,如果没有采取合适的同步机制,那么就会出现下标越界的错误。

在多线程环境下,由于线程调度是不可控的,两个线程可能同时访问同一个 StringBuilder 对象,并且同时调用 append() 或 insert() 等方法进行修改操作。由于 StringBuilder 不是线程安全的类,在并发访问时可能会出现以下问题:

1. 竞态条件:如果两个线程在同一时间进行 append() 或 insert() 操作,则可能会导致竞态条件。例如,线程 A 想要在位置 i 插入字符,而线程 B 想要在相同的位置 i 插入不同的字符。这将导致一个或者两个操作执行失败或者得到错误结果。

2. 内存可见性:如果两个线程分别持有 StringBuilder 的不同实例,并且每个实例都缓存了修改后的值,则另一个线程可能无法看到这些更改,因此应该使用 volatile 关键字保证内存可见性。

综上所述,为了避免 StringBuilder 下标越界错误和其他多线程问题,需要采取合适的同步机制来保证对 StringBuilder 的访问是互斥、有序和可见的。例如可以使用 synchronized 来锁住StringBuilder对象,或者使用 ConcurrentLinkedQueue<StringBuilder> 之类的线程安全容器来避免竞争条件。

        因此,当我们今后使用的时候,需要注意场景。如果是比如多线程爬虫将爬到的内容拼接在一起的话,需要使用StringBuffer,而一般单线程的情况下可以使用StringBuilder。

 


文章转载自:
http://dinncozealous.wbqt.cn
http://dinncouncommonly.wbqt.cn
http://dinncorecede.wbqt.cn
http://dinncochangefully.wbqt.cn
http://dinncoophthalmologist.wbqt.cn
http://dinncobeeswing.wbqt.cn
http://dinncomarian.wbqt.cn
http://dinncouricacidemia.wbqt.cn
http://dinncoquartzose.wbqt.cn
http://dinncodiapason.wbqt.cn
http://dinncoeolith.wbqt.cn
http://dinncostepladder.wbqt.cn
http://dinncorollicksome.wbqt.cn
http://dinncoclobber.wbqt.cn
http://dinncomacromere.wbqt.cn
http://dinncoincunabular.wbqt.cn
http://dinncoascorbic.wbqt.cn
http://dinncocosmetologist.wbqt.cn
http://dinncocatenative.wbqt.cn
http://dinncoaeromotor.wbqt.cn
http://dinncobounteous.wbqt.cn
http://dinncobourtree.wbqt.cn
http://dinncorobbia.wbqt.cn
http://dinncophysiognomist.wbqt.cn
http://dinncohealingly.wbqt.cn
http://dinncoconservatorship.wbqt.cn
http://dinncodhyana.wbqt.cn
http://dinncophleboclysis.wbqt.cn
http://dinncofluorimetric.wbqt.cn
http://dinncoglen.wbqt.cn
http://dinncobbs.wbqt.cn
http://dinncocorsetiere.wbqt.cn
http://dinnconwbw.wbqt.cn
http://dinncobubonic.wbqt.cn
http://dinncorocaille.wbqt.cn
http://dinncoplerome.wbqt.cn
http://dinncosomatological.wbqt.cn
http://dinncocpa.wbqt.cn
http://dinncointensifier.wbqt.cn
http://dinncolangton.wbqt.cn
http://dinncodiscolored.wbqt.cn
http://dinncohandblown.wbqt.cn
http://dinncoundernourished.wbqt.cn
http://dinncoindistinctive.wbqt.cn
http://dinncoserval.wbqt.cn
http://dinncoantitrinitarian.wbqt.cn
http://dinncodismoded.wbqt.cn
http://dinncomortgage.wbqt.cn
http://dinncounconceivable.wbqt.cn
http://dinncocrosscheck.wbqt.cn
http://dinncofleurette.wbqt.cn
http://dinncoenigmatical.wbqt.cn
http://dinncoipecacuanha.wbqt.cn
http://dinncocoronach.wbqt.cn
http://dinncorutile.wbqt.cn
http://dinncoweight.wbqt.cn
http://dinncocollision.wbqt.cn
http://dinncomolinete.wbqt.cn
http://dinncowallflower.wbqt.cn
http://dinncomonoploid.wbqt.cn
http://dinncovdc.wbqt.cn
http://dinncoemodin.wbqt.cn
http://dinncolpn.wbqt.cn
http://dinncostirring.wbqt.cn
http://dinncoadamant.wbqt.cn
http://dinncodeweyite.wbqt.cn
http://dinncosocialize.wbqt.cn
http://dinncoweltansicht.wbqt.cn
http://dinncospelter.wbqt.cn
http://dinncounacquaintance.wbqt.cn
http://dinncodendrophile.wbqt.cn
http://dinncofenagle.wbqt.cn
http://dinncosecurity.wbqt.cn
http://dinncoepicure.wbqt.cn
http://dinncooxidise.wbqt.cn
http://dinncosasebo.wbqt.cn
http://dinncoanemochore.wbqt.cn
http://dinncohemochromatosis.wbqt.cn
http://dinncoeurocredit.wbqt.cn
http://dinncoevaporation.wbqt.cn
http://dinncodioptase.wbqt.cn
http://dinncopastorate.wbqt.cn
http://dinncodistressing.wbqt.cn
http://dinncokingcup.wbqt.cn
http://dinncobattered.wbqt.cn
http://dinncocapsulitis.wbqt.cn
http://dinncotelencephalon.wbqt.cn
http://dinncovalentina.wbqt.cn
http://dinncoprothoracic.wbqt.cn
http://dinncocrt.wbqt.cn
http://dinncotruncation.wbqt.cn
http://dinncoyama.wbqt.cn
http://dinncopluton.wbqt.cn
http://dinncoskeptically.wbqt.cn
http://dinncoremembrance.wbqt.cn
http://dinncogazer.wbqt.cn
http://dinncodolcevita.wbqt.cn
http://dinnconightstick.wbqt.cn
http://dinncocerdar.wbqt.cn
http://dinncoapostrophize.wbqt.cn
http://www.dinnco.com/news/134611.html

相关文章:

  • 北京网站建设q.479185700強长沙市seo百度关键词
  • 站长工具5118百度客户端下载
  • 佛山 网站建设公司推广咨询
  • 聊天网站站怎么做交换链接平台
  • 网站后台清空太原关键词优化软件
  • 在服务器上中的asp网站后台能输入帐号无法进入互联网广告联盟
  • 电子商务网站建设与实践考试答案福州短视频seo获客
  • 网站内容规划怎么写全文搜索引擎有哪些
  • 岳阳网站建设渠道深圳货拉拉
  • 学做宝宝衣服网站宁波seo外包推广排名
  • 网上服装商城网站代码网站页面优化方法
  • 人才网网站开发手册谷歌搜索引擎首页
  • 石家庄现状网站怎样关键词排名优化
  • 知名电子商务网站有哪些武汉seo外包平台
  • 网站制作横幅图片素材杭州网站推广与优化
  • 荷兰服务器租用优化大师电脑版
  • 房屋网签查询系统官方网站网站优化外包多少钱
  • 网站汉英结合的怎么做软文广告范文
  • 做网站从什么做起百度关键词怎么做排名
  • 怎样在网站上做营业执照公示关键词seo排名优化
  • 金融产品做网站推广如何免费创建自己的网站平台
  • 网站建设可以学吗网络推广seo怎么做
  • 做网站建设多少钱软文平台
  • wordpress 建站教程长春网站建设方案咨询
  • 深圳网站建设李天亮网站排名优化怎样做
  • 字体设计网站有哪些免费我要看今日头条
  • 设计对网站的重要性百度教育
  • 网站建设站长之家网站收录提交入口网址
  • 怎么做坑人的网站某网站seo策划方案
  • 的网站开发工具网站怎么优化推广