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

花生壳如何建设网站杭州网站推广与优化

花生壳如何建设网站,杭州网站推广与优化,网页制作工具教程,5000元做百度推广效果怎么样最近在网上找到好多的多线程关于原子性的例子#xff0c;说的都不是非常的明确#xff0c;对于刚学习多线程的新手而言很容误导学员#xff0c;在这里#xff0c;我通过多个例子对多线程的原子性加以说明。 例子一#xff1a;传统技术自增 package face.thread.volatilep;…最近在网上找到好多的多线程关于原子性的例子说的都不是非常的明确对于刚学习多线程的新手而言很容误导学员在这里我通过多个例子对多线程的原子性加以说明。   例子一传统技术自增 package face.thread.volatilep;public class Counter2 {private int count 0; public synchronized void inc() {count count 1;}public static void main(String[] args) {//同时启动1000个线程去进行i计算看看实际结果final Counter2 c new Counter2();for (int i 0; i 1000; i) {new Thread(new Runnable() {Overridepublic void run() {c.inc();}}).start();}try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}//这里每次运行的值都有可能不同,可能为1000System.out.println(运行结果:Counter.count c.count);} } 以上代码打印的结果偶尔会等于1000基本上都会有一些误差原因是线程执行的顺序无法保证的很可能在新建的1000个线程还没有执行完我们的代码 System.out.println(运行结果:Counter.count Counter.count); 就已经执行完了要想解决这个问题很简单那就是在最后一句println之前在线程睡眠一段时间比如睡眠2秒钟。等1000个线程执行完了在打印 运行结果:Counter.count Counter.count   还可以借助于线程辅助类解决在这里就举例一个最简单的例子展示   package face.thread.volatilep;import java.util.concurrent.BrokenBarrierException; import java.util.concurrent.CyclicBarrier;public class Counter3 {int count 0; public synchronized void inc() {count;}public static void main(String[] args) {//同时启动1000个线程去进行i计算看看实际结果final Counter3 c new Counter3();final CyclicBarrier cy new CyclicBarrier(10000, new Runnable() {public void run() {//这里每次运行的值都有可能不同,可能为1000System.out.println(运行结果:Counter.count c.count);}});for (int i 0; i 10000; i) {new Thread(new Runnable() {Overridepublic void run() {c.inc();try {cy.await();} catch (InterruptedException e) {e.printStackTrace();} catch (BrokenBarrierException e) {e.printStackTrace();}}}).start();}} }   例子二原子性自增 原子是世界上的最小单位具有不可分割性。比如 a0a非long和double类型 这个操作是不可分割的那么我们说这个操作时原子操作。再比如a 这个操作实际是a a 1是可分割的所以他不是一个原子操作。非原子操作都会存在线程安全问题需要我们使用同步技术sychronized来让它变成一个原子操作。一个操作是原子操作那么我们称它具有原子性。Java的concurrent包下提供了一些原子类我们可以通过阅读API来了解这些原子类的用法。比如AtomicInteger、AtomicLong、AtomicReference等。 因为原子性是线程安全的所以关于原子性自增是不需要传统的加锁技术的具体看代码 package face.thread.volatilep;import java.util.concurrent.atomic.AtomicInteger;public class CounterNew2{AtomicInteger count new AtomicInteger(0);public void increment() {count.getAndIncrement();}public int getCount() {return count.get();}public static void main(String[] args) {final CounterNew2 cn new CounterNew2();for(int i 0 ; i 10000;i){new Thread(new Runnable() {public void run() {cn.increment();}}).start();}try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println(count最终返回值: cn.getCount());} } 运行结果也是10000 转载于:https://www.cnblogs.com/chen1-kerr/p/6900051.html
http://www.pierceye.com/news/843420/

相关文章:

  • 余姚住房和建设局网站10元备案域名购买
  • 企业网站制作公司盈利做支付行业招代理一般上什么网站
  • 网站制作电话wordpress支持PHP吗
  • 天津网站推广宣传拓者设计吧室内设计
  • 建设 信用中国 网站淘宝购物
  • 义乌论坛网站建设怎样建设智能网站
  • 重庆做网站 外包公司建设校园网站的必要性
  • 做我女朋友好不好套路网站html5网页设计实训总结
  • 怎样给网站登录界面做后台seo研究中心官网
  • 养生类网站源码dreamwear网页制作
  • 北京装修平台网站网页设计公司企业文化
  • 上海临平路网站建设网站建设设计制作方案与价格
  • seo三人行网站免费电商网站建设
  • seo蒙牛伊利企业网站专业性诊断.win域名做网站怎么样
  • 微信、网站提成方案点做网站建设当中的技术解决方案
  • 云南省住房和城乡建设厅官方网站网站哪里可以查到做ddos
  • 爱情动做网站推荐个人养老保险金怎么交
  • 淘客怎么做自己的网站演示动画制作免费网站
  • 哪个网站可以搭建网页百度指数官网入口
  • 济南网站开发设计wordpress. 外贸seo
  • 深圳网站建设优化织梦 蝉知 wordpress
  • 荥阳郑州网站建设wordpress oauth2插件
  • 做传媒网站公司简介企业手机网站源码
  • 一级A做爰片安全网站济南营销型网站制作
  • 网站规划说明书范文17素材网官网
  • 青岛做网站大公司免费的行情网站app网页推荐
  • 产品网站建设多少钱哪些网站做推广效果好
  • 网站开发所需技能外链网
  • 广州做家教的网站临沂哪里有做网站
  • 网站建设介绍会发言稿网站开发主页