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

网站排版设布局做费网站

网站排版设布局,做费网站,软件工程师要求,公司建站方案文章目录 1、ArrayList集合线程安全问题分析2、解决方式一#xff1a;Vector或synchronizedList( )3、解决方式二#xff1a;CopyOnWriteArrayList 写时复制4、HashSet集合线程不安全的分析与解决5、HashMap集合线程不安全的分析与解决 1、ArrayList集合线程安全问题分析 对… 文章目录 1、ArrayList集合线程安全问题分析2、解决方式一Vector或synchronizedList( )3、解决方式二CopyOnWriteArrayList 写时复制4、HashSet集合线程不安全的分析与解决5、HashMap集合线程不安全的分析与解决 1、ArrayList集合线程安全问题分析 对List集合非线程安全的Demo代码 public class ArrayListDemo {public static void main(String[] args) {ListString list new ArrayList();//多个线程同时写入List集合for (int i 0; i 10; i) {new Thread(() - {//加元素list.add(UUID.randomUUID().toString().substring(0,8));//遍历输出集合System.out.println(list);},String.valueOf(i)).start();}} }运行 ConcurrentModificationException异常是在多线程环境下当一个线程正在遍历集合而另一个线程对集合进行了修改操作时就会抛出这个异常。以ArrayList为例其add方法源码未加synchronized关键字 再点击报错详情进入抛出异常的方法 modCount即集合新增的次数是实际修改次数而expectedModCount是预期修改次数它是ArrayList的一个内部类Itr的成员变量调用iterator(获取迭代器时内部创建Itr对象此时modCount会赋值给expectedModCount 拿到迭代器对象要遍历集合时modCount已经赋值给expectedModCount而此时其他线程继续addmodCount1modCount和expectedModCount就不相等了。 2、解决方式一Vector或synchronizedList( ) List接口的另一个实现类Vector其add方法加了关键字使用它可解决线程安全问题但很古老了since1.2很少用了。 ListString list new Vector(); //重复代码略同样一种古老的解决方案可以用Collections的synchronizedList方法传入一个有线程安全问题的List如ArrayList: ListString list Collections.synchronizedList(new ArrayList());3、解决方式二CopyOnWriteArrayList 写时复制 ListString list new CopyOnWriteArrayList();完整demo public class ArrayListDemo {public static void main(String[] args) {ListString list new CopyOnWriteArrayList();//多个线程同时写入List集合for (int i 0; i 10; i) {new Thread(() - {//加元素list.add(UUID.randomUUID().toString().substring(0,8));//遍历输出集合System.out.println(list);},String.valueOf(i)).start();}} } 原理是写时复制技术即 对这个List实现类的集合可以多线程并发读往集合中写的时候则只能独立写先复制一份原来的集合这个时候读还是读原来的然后往新集合里面写入新的内容写完后新旧合并再读时就读这个合并后的集合 看下源码再对照着理解写时复制 4、HashSet集合线程不安全的分析与解决 public class HashSetDemo {public static void main(String[] args) {SetString set new HashSet();for (int i 0; i 30; i) {new Thread(() - {//写入set.add(UUID.randomUUID().toString().substring(0,8));//读System.out.println(set);},String.valueOf(i)).start();}} }运行 解决办法类比上面的List使用CopyOnWriteArraySet SetString set new CopyOnWriteArraySet();5、HashMap集合线程不安全的分析与解决 public class HashSetDemo {public static void main(String[] args) {MapString,string map new HashMap();for (int i 0; i 30; i) {String key String.valueOf(i);new Thread(() - {//写入map.put(key,UUID.randomUUID().toString().substring(0,8));//读System.out.println(map);},String.valueOf(i)).start();}} }解决办法类比List用ConcurrentHashMap MapString,String map new ConcurrentHashMap();
http://wiki.neutronadmin.com/news/109870/

相关文章:

  • 寻花问柳一家专门做男人的网站可以建微信网站的
  • 5118网站如何使用免费版建一个网站需要哪些东西
  • 做外贸上哪些网站找客户镇江网站建设 找思创
  • 炫酷网站有哪些打电话叫人做网站
  • 北京网站建设网络公司域名如何注册?
  • 用新华做网站名是否侵权seo优化的价格
  • ...无锡网站制作上海专业的网站建
  • 网站运营知识旅游电子商务的三创赛网站建设
  • 备案停止网站dede网站如何换logo
  • 做网站相册移动端网站建设的方案
  • 渭南微网站建设中山网站建设模板网络公司
  • 网站首页轮播图怎么做的泰州做企业网站
  • 自建站有哪些站点企业管理培训课程机构
  • 东莞家具饰品东莞网站建设wordpress标题调用标签
  • 华为公司网站建设案例分析买网站
  • 网站建设 虚拟化适合大学生做的网站
  • 做品牌网站怎么样wordpress修改时区
  • 明星个人网站设计google搜索引擎入口
  • 成品网站免费模板食品公司
  • 如何建立自己的个人网站重庆好网互联
  • 十大国外室内设计网站六安哪家公司做网站好
  • wordpress 安装过程培训seo
  • 什么网站可以用视频做背景百度推广就是做网站吧
  • word网站的链接怎么做西安百度公司电话
  • 黑龙江省建设银行网站爱在发烧 wordpress
  • 榆林网站建设推广网站备案名字要怎么写
  • 西安高校定制网站建设朗朗上口的公司名称
  • 网站开发模块锦州网站建设品牌
  • 域名申请好了 要怎么做网站建瓯网站建设
  • dedecms网站地图插件优设网页设计官网