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

电子商务网站建设选择题重庆seo排名收费

电子商务网站建设选择题,重庆seo排名收费,网站建设需求模板下载,做网站和做系统哪个难1、多线程并发 1)多线程中 synchronized 锁升级的原理是什么? synchronized 锁升级原理:在锁对象的对象头里面有一个 threadid 字段,在第一次访问的时候 threadid 为空,jvm 让其持有偏向锁,并将 threadid…

 

1、多线程并发

1)多线程中 synchronized 锁升级的原理是什么?

synchronized 锁升级原理:在锁对象的对象头里面有一个 threadid 字段,在第一次访问的时候 threadid 为空,jvm 让其持有偏向锁,并将 threadid 设置为其线程 id,再次进入的时候会先判断 threadid 是否与其线程 id 一致,如果一致则可以直接使用此对象,如果不一致,则升级偏向锁为 轻量级锁,通过自旋循环一定次数来获取锁,执行一定次数之后,如果还没有正常获取到要使用的 对象,此时就会把锁从轻量级升级为重量级锁,此过程就构成了 synchronized 锁的升级。 锁的升级的目的:锁升级是为了减低了锁带来的性能消耗。在 Java 6 之后优化 synchronized 的实现方 式,使用了偏向锁升级为轻量级锁再升级到重量级锁的方式,从而减低了锁带来的性能消耗。

偏向锁,顾名思义,它会偏向于第一个访问锁的线程,如果在运行过程中,同步锁只有一个线程访 问,不存在多线程争用的情况,则线程是不需要触发同步的,减少加锁/解锁的一些CAS操作(比 如等待队列的一些CAS操作),这种情况下,就会给线程加一个偏向锁。 如果在运行过程中,遇 到了其他线程抢占锁,则持有偏向锁的线程会被挂起,JVM会消除它身上的偏向锁,将锁恢复到标 准的轻量级锁。

轻量级锁是由偏向所升级来的,偏向锁运行在一个线程进入同步块的情况下,当第二个线程加入锁 争用的时候,轻量级锁就会升级为重量级锁;

重量级锁是synchronized ,是 Java 虚拟机中最为基础的锁实现。在这种状态下,Java 虚拟机会阻 塞加锁失败的线程,并且在目标锁被释放的时候,唤醒这些线程。

2、线程池有什么优点?

降低资源消耗:重用存在的线程,减少对象创建销毁的开销。

提高响应速度:可有效的控制最大并发线程数,提高系统资源的使用率,同时避免过多资源竞争, 避免堵塞。当任务到达时,任务可以不需要的等到线程创建就能立即执行。

提高线程的可管理性:线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统 的稳定性,使用线程池可以进行统一的分配,调优和监控。

附加功能:提供定时执行、定期执行、单线程、并发数控制等功能。

3、ThreadPoolExecutor饱和策略有哪些?

如果当前同时运行的线程数量达到最大线程数量并且队列也已经被放满了任时,ThreadPoolTaskExecutor 定 义一些策略:

ThreadPoolExecutor.AbortPolicy:抛出 RejectedExecutionException来拒绝新任务的处理。

ThreadPoolExecutor.CallerRunsPolicy:调用执行自己的线程运行任务。您不会任务请求。但是 这种策略会降低对于新任务提交速度,影响程序的整体性能。另外,这个策略喜欢增加队列容量。 如果您的应用程序可以承受此延迟并且你不能任务丢弃任何一个任务请求的话,你可以选择这个策 略

(当前线程调用线程池处理多线程任务,线程池队列满了,那么就会用当前调用多线程的线程,即用户线程来执行当前需要执行的多线程任务===影响性能,但是不会丢失任务)

ThreadPoolExecutor.DiscardPolicy:不处理新任务,直接丢弃掉。 ThreadPoolExecutor.DiscardOldestPolicy: 此策略将丢弃最早的未处理的任务请求。

4、ThreadPoolExecutor线程池的执行原理?

5、如何合理分配线程池大小?

要合理的分配线程池的大小要根据实际情况来定,

简单的来说的话就是根据CPU密集和IO密集来 分配

什么是CPU密集 CPU密集的意思是该任务需要大量的运算,而没有阻塞,CPU一直全速运行。 CPU密集任务只有在真正的多核CPU上才可能得到加速(通过多线程),而在单核CPU上,无论你开 几个模拟的多线程,该任务都不可能得到加速,因为CPU总的运算能力就那样。

什么是IO密集 IO密集型,即该任务需要大量的IO,即大量的阻塞。在单线程上运行IO密集型的任务会导致浪费 大量的CPU运算能力浪费在等待。所以在IO密集型任务中使用多线程可以大大的加速程序运行, 即时在单核CPU上,这种加速主要就是利用了被浪费掉的阻塞时间。

分配CPU和IO密集: 1. CPU密集型时,任务可以少配置线程数,大概和机器的cpu核数相当,这样可以使得每个线程都在 执行任务 2. IO密集型时,大部分线程都阻塞,故需要多配置线程数,2*cpu核数 精确来说的话的话:

从以下几个角度分析任务的特性: 任务的性质:CPU密集型任务、IO密集型任务、混合型任务。 任务的优先级:高、中、低。 任务的执行时间:长、中、短。 任务的依赖性:是否依赖其他系统资源,如数据库连接等。

可以得出一个结论: 线程等待时间比CPU执行时间比例越高,需要越多线程。 线程CPU执行时间比等待时间比例越高,需要越少线程。

http://www.15wanjia.com/news/44554.html

相关文章:

  • 企业查询免费网站曼联vs恩波利比分
  • 深圳设计网站公司品牌营销推广
  • 手工迷你饮水机合肥seo公司
  • 网站站点结构的构建2023智慧树网络营销答案
  • 本地唐山网站建设网站建设公司哪家好?该如何选择
  • 做日语网站网络销售怎么才能找到客户
  • 宁波市网站建设百度数据中心
  • 网站蓝色绿色配色seo外包公司报价
  • 360浏览器直接进入网站最新免费网站收录提交入口
  • 怎么做网站编辑外包公司的人好跳槽吗
  • 做中文网站公司精准的搜索引擎优化
  • 网站图片用什么格式青岛网站建设微动力
  • 有什么可以在线做奥数题的网站付费推广
  • 特殊符号网名生成器网络优化工程师
  • wordpress网站导航模板seo网站诊断报告
  • 网站制作与网页制作软件排名优化
  • cms网站建设方案电商营销策略
  • 网站建设分享文章商品seo优化是什么意思
  • 关键词seo排名优化如何哈尔滨seo关键词优化
  • 网站做优化武汉网站关键词推广
  • 网站建设设计作业百度搜索引擎优化怎么做
  • 一级做a爱网站免费抖音推广佣金平台
  • 网站建设的工作总结seo技术网网
  • 欧美做的爱爱网站有哪些自己如何开网站
  • 赣州网站制作北京优化核酸检测
  • 别样网图片素材网站抖音seo关键词优化
  • 网站怎么做直播功能吗论坛推广的特点
  • 国外建设工程网站公司想做网络推广贵不
  • 温州建设集团官方网站电商培训机构需要什么资质
  • 相亲网站建设策划方案百度关键词查询工具