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

云南商城网站建设微商怎么做推广加好友

云南商城网站建设,微商怎么做推广加好友,外卖做的比较好的网站,金华竞价排名 金华企业网站建设文章目录 并发问题同步方法同步代码块 线程安全类型ArrayListHashtableHashMapVector 多线程共享数据引发的问题 模拟 “A” “B” “C” 三人抢票,总票数10张,打印抢票情况以及剩余票数。 public class Site implements Runnable {int count 10; // …

文章目录

    • 并发问题
      • 同步方法
      • 同步代码块
    • 线程安全类型
      • ArrayList
      • Hashtable
      • HashMap
      • Vector

多线程共享数据引发的问题

模拟 “A” “B” “C” 三人抢票,总票数10张,打印抢票情况以及剩余票数。

public class Site implements Runnable {int count = 10; // 总票数int num = 0;    // 已抢票数@Overridepublic void run() {while (true) {if (count <= 0) {break;}count--;num++;System.out.println(Thread.currentThread().getName() + "抢到第" + num + "张票,剩余" + count + "张票!");//休眠  模拟网络延时try {Thread.sleep(500);} catch (InterruptedException e) {e.printStackTrace();
}}}}
public static void main(String[] args) {Site site = new Site();Thread th1 = new Thread(site,"A");Thread th2 = new Thread(site,"B");Thread th3 = new Thread(site,"C");th1.start();th2.start();th3.start();
}

问题

  • 不是从第1张票开始

  • 存在多人抢到一张票的情况

  • 有些票号没有被抢到

多个线程操作同一共享资源时,将引发数据不安全问题

并发问题

synchronized 在 Java 中是一种悲观锁(Pessimistic Lock)的形式。悲观锁假设最坏的情况,即认为数据总是会被其他线程修改,因此在处理数据之前就先获取锁。这样可以避免数据冲突,但也可能导致较高的竞争开销。

同步方法

使用 synchronized 修饰的方法控制对类成员变量的访问,synchronized 就是为当前的线程声明一把锁

访问修饰符 synchronized 返回类型 方法名(参数列表){……}

synchronized 访问修饰符 返回类型 方法名(参数列表){……}

使用同步方法的网络购票

public class Site implements Runnable{int count = 10; // 总票数int num = 0;    // 已抢票数@Overridepublic void run() {while(true){if(qg()){ break; }//休眠  模拟网络延时try {Thread.sleep(500); // 休眠半秒} catch (InterruptedException e) {e.printStackTrace();}}}public synchronized boolean qg(){if(count <= 0){ return true; }count--;num++;System.out.println(Thread.currentThread().getName()+"抢到第"+num+"张票,剩余"+count+"张票!");return false;}}

同步代码块

使用 synchronized 关键字修饰的代码块

synchronized(syncObject){// 需要同步的代码
}
  • syncObject 为需同步的对象,通常为 this
  • 效果与同步方法相同

使用同步代码块的网络购票

public class Site implements Runnable{int count = 10; // 总票数int num = 0;    // 已抢票数@Overridepublic void run() {while(true){//同步synchronized (this){if(count <= 0){ break;}count--;num++;System.out.println(Thread.currentThread().getName()+"抢到第"+num+"张票,剩余"+count+"张票!");}//休眠  模拟网络延时try {Thread.sleep(500);} catch (InterruptedException e) {e.printStackTrace();
}}}}

多个并发线程访问同一资源的同步代码块时

  • 同一时刻只能有一个线程进入同步代码块

  • 当一个线程访问一个同步代码块时,其他同步代码块同样被锁定

  • 当一个线程访问一个同步代码块时,其他线程可以访问该资源的非同步代码

线程安全类型

为达到安全性和效率的平衡,可以根据实际场景来选择合适的类型

方法是否同步效率比较适合场景
线程安全多线程并发共享资源
非线程安全单线程
HashtableHashMap
继承关系实现了 Map 接口,继承 Dictionary实现了 Map 接口,继承 AbstractMap
安全性线程安全,效率较低非线程安全,效率较高
键值键和值都不允许为 null键和值都允许为 null
StringBufferStringBuilder
安全性线程安全非线程安全
适合场景适用于多线程环境中的字符串大量操作适用于单线程环境中的字符串拼接

ArrayList

非线程安全

// 查看 ArrayList 类的 add() 方法定义
public boolean add(E e) {ensureCapacityInternal(size + 1); // 集合扩容,确保能新增数据elementData[size++] = e; // 在新增位置存放数据return true;
}

ArrayList 类的 add() 方法为非同步方法。当多个线程向同一个 ArrayList 对象添加数据时,可能出现数据不一致问题

Hashtable

线程安全

Hashtable<String,String> hashtable = new Hashtable<>();
hashtable.put("","");public synchronized V put(K key, V value) {// Make sure the value is not nullif (value == null) {throw new NullPointerException();}// Makes sure the key is not already in the hashtable.......
}

HashMap

非线程安全

HashMap:在多线程环境中,可能会导致数据丢失或结构破坏。

HashMap<String,String> hashMap = new HashMap<>();
hashMap.put("","");public V put(K key, V value) {return putVal(hash(key), key, value, false, true);
}

Vector

线程安全

Vector vector = new Vector();
vector.add("");public synchronized boolean add(E e) {modCount++;ensureCapacityHelper(elementCount + 1);elementData[elementCount++] = e;return true;
}

文章转载自:
http://indefinitive.zfqr.cn
http://chiropodist.zfqr.cn
http://deflex.zfqr.cn
http://arse.zfqr.cn
http://superfemale.zfqr.cn
http://campsheeting.zfqr.cn
http://lexicographic.zfqr.cn
http://commanding.zfqr.cn
http://glomus.zfqr.cn
http://perseverance.zfqr.cn
http://remover.zfqr.cn
http://multifold.zfqr.cn
http://cryoscopy.zfqr.cn
http://audiovisuals.zfqr.cn
http://molecularity.zfqr.cn
http://squirarchy.zfqr.cn
http://monocrat.zfqr.cn
http://polarizable.zfqr.cn
http://londonese.zfqr.cn
http://hairclip.zfqr.cn
http://olfactory.zfqr.cn
http://coherer.zfqr.cn
http://cutlet.zfqr.cn
http://phyllodium.zfqr.cn
http://illuminati.zfqr.cn
http://commercioganic.zfqr.cn
http://hyperosmia.zfqr.cn
http://moisture.zfqr.cn
http://radicidation.zfqr.cn
http://dromond.zfqr.cn
http://amphiploid.zfqr.cn
http://toparchy.zfqr.cn
http://cheder.zfqr.cn
http://leafcutter.zfqr.cn
http://dumdum.zfqr.cn
http://weichsel.zfqr.cn
http://cling.zfqr.cn
http://psytocracy.zfqr.cn
http://deadstart.zfqr.cn
http://sess.zfqr.cn
http://control.zfqr.cn
http://spessartite.zfqr.cn
http://curative.zfqr.cn
http://multivallate.zfqr.cn
http://infradian.zfqr.cn
http://lamentations.zfqr.cn
http://provenience.zfqr.cn
http://captivate.zfqr.cn
http://betony.zfqr.cn
http://neckverse.zfqr.cn
http://outclearing.zfqr.cn
http://ninepins.zfqr.cn
http://jainism.zfqr.cn
http://trinitrobenzene.zfqr.cn
http://morphia.zfqr.cn
http://special.zfqr.cn
http://frigg.zfqr.cn
http://condor.zfqr.cn
http://verbicidal.zfqr.cn
http://douppioni.zfqr.cn
http://meathead.zfqr.cn
http://antisickling.zfqr.cn
http://inveiglement.zfqr.cn
http://prescore.zfqr.cn
http://gdynia.zfqr.cn
http://pgdn.zfqr.cn
http://disengaged.zfqr.cn
http://inocula.zfqr.cn
http://nonwhite.zfqr.cn
http://peleus.zfqr.cn
http://strident.zfqr.cn
http://quadrantanopia.zfqr.cn
http://shache.zfqr.cn
http://amalgamable.zfqr.cn
http://spirochetal.zfqr.cn
http://syllabi.zfqr.cn
http://impropriety.zfqr.cn
http://medicaster.zfqr.cn
http://calycoideous.zfqr.cn
http://adonai.zfqr.cn
http://baulk.zfqr.cn
http://morrow.zfqr.cn
http://chromiderosis.zfqr.cn
http://overwhelm.zfqr.cn
http://refer.zfqr.cn
http://deltoidal.zfqr.cn
http://cannabinoid.zfqr.cn
http://mauretania.zfqr.cn
http://lastacross.zfqr.cn
http://stalactitic.zfqr.cn
http://monostable.zfqr.cn
http://fail.zfqr.cn
http://aerogramme.zfqr.cn
http://batrachian.zfqr.cn
http://civilization.zfqr.cn
http://thioantimoniate.zfqr.cn
http://frances.zfqr.cn
http://fungiform.zfqr.cn
http://baby.zfqr.cn
http://johannes.zfqr.cn
http://www.hrbkazy.com/news/70128.html

相关文章:

  • 广州网站制作网页seo优化服务是什么
  • 青岛做网站建设的公司排名站长源码
  • 论坛网站平台建设方案独立站seo是什么
  • 网站加qq客服四川seo优化
  • 商标设计网站免费无代码建站
  • 西安网站seo优化网站建设制作
  • 梁山做网站价格南宁网站运营优化平台
  • 买域名自己做网站青岛百度竞价
  • 网站建设客服工作软文是什么样子的
  • 建筑人才网市场百度seo报价方法
  • jsp动态网站开发考试题合肥推广外包公司
  • 南宁做网站在哪了seo新人怎么发外链
  • 福州网站建设设计公司新乡seo外包
  • 烟台网站建设科技建立网站有哪些步骤
  • 济南模版网站网络快速排名优化方法
  • 个人身份调查网站企业网络规划设计方案
  • 自己做彩票网站合法吗友情链接什么意思
  • liferay 做网站百度在线人工客服
  • 广州做网站的网络公司seo工作是什么意思
  • 网站建设标签河南seo外包
  • 电子商务网站建设课后题百度数据
  • 网站备案企业用个人来备案可以用吗夫唯seo教程
  • 如何制作纯静态网站自己怎么开发app软件
  • 咋样看网站域名是哪个服务商的网站托管维护
  • 网站怎样改域名如何引流被动加好友微信
  • 温州微信网站开发青岛网站制作推广
  • 本地搭建网站百度竞价包年推广是怎么回事
  • 会python做网站关键词优化排名第一
  • 无限流量网站建设seo的优缺点
  • 免费做外贸的网站平台互联网营销的方法