当前位置: 首页 > news >正文 给网站做优化刷活跃要收费吗佛山网页设计多少钱 news 2025/10/23 3:10:26 给网站做优化刷活跃要收费吗,佛山网页设计多少钱,大连网络营销公司,商城网站网络公司线程池 线程池的参数有哪些 线程池七大参数分别是corePoolSize、maximumPoolSize、keepAliveTime、unit、workQueue、threadFactory、handler corePoolSize#xff1a;线程池中常驻核心线程数maximumPoolSize#xff1a;线程池能够容纳同时执行的最大线程数keepAliveTime线程池中常驻核心线程数maximumPoolSize线程池能够容纳同时执行的最大线程数keepAliveTime多余的空闲线程存活时间unitkeepAliveTime的时间单位workQueue任务队列被提交但尚未执行的任务threadFactory表示生成线程池中的工作线程的线程工厂handler拒绝策略表示当队列满了并且工作线程大于等于线程池的最大线程数(maximumPoolSize)时如何拒绝。 线程池都有哪几种工作队列 ArrayBlockingQueue是一个基于数组结构的有界阻塞队列此队列按 FIFO先进先出原则对元素进行排序。LinkedBlockingQueue一个基于链表结构的阻塞队列此队列按FIFO 先进先出 排序元素吞吐量通常要高于ArrayBlockingQueue。静态工厂方法Executors.newFixedThreadPool()使用了这个队列SynchronousQueue一个不存储元素的阻塞队列。每个插入操作必须等到另一个线程调用移除操作否则插入操作一直处于阻塞状态吞吐量通常要高于LinkedBlockingQueue静态工厂方法Executors.newCachedThreadPool5使用了这个队列。PriorityBlockingQueue一个具有优先级的无限阻塞队列。 四种线程池的创建 newCachedThreadPool 创建一个可缓存线程池newFixedThreadPool 创建一个定长线程池可控制线程最大并发数。newScheduledThreadPool 创建一个定长线程池支持定时及周期性任务执行。newSingleThreadExecutor 创建一个单线程化的线程池它只会用唯一的工作线程来执行任务。 线程池的优点 重用存在的线程减少对象创建销毁的开销。可有效的控制最大并发线程数提高系统资源的使用率同时避免过多资源竞争避免堵塞。提供定时执行、定期执行、单线程、并发数控制等功能。 如果你提交任务时线程池队列已满这时会发生什么 这里区分一下 1如果使用的是无界队列 LinkedBlockingQueue也就是无界队列的话没关系继续添加任务到阻塞队列中等待执行因为LinkedBlockingQueue可以近乎认为是一个无穷大的队列可以无限存放任务 2如果使用的是有界队列比如ArrayBlockingQueue任务首先会被添加到ArrayBlockingQueue中ArrayBlockingQueue满了会根据maximumPoolSize的值增加线程数量如果增加了线程数量还是处理不过来ArrayBlockingQueue继续满那么则会使用拒绝策略RejectedExecutionHandler处理满了的任务默认是AbortPolicy 并发原理 并发编程三要素 原子性原子性指的是一个或者多个操作要么全部执行并且在执行的过程中不被其他操作打断要么就全部都不执行。可见性可见性指多个线程操作一个共享变量时其中一个线程对变量进行修改后其他线程可以立即看到修改的结果。有序性有序性即程序的执行顺序按照代码的先后顺序来执行。 实现可见性的方法有哪些 synchronized或者Lock保证同一个时刻只有一个线程获取锁执行代码锁释放之前把最新的值刷新到主内存实现可见性。 创建线程的有哪些方式 继承Thread类创建线程类通过Runnable接口创建线程类通过Callable和Future创建线程通过线程池创建 创建线程的三种方式的对比 1采用实现Runnable、Callable接口的方式创建多线程。 优势是 线程类只是实现了Runnable接口或Callable接口还可以继承其他类。 在这种方式下多个线程可以共享同一个target对象所以非常适合多个相同线程来处理同一份资源的情况从而可以将CPU、代码和数据分开形成清晰的模型较好地体现了面向对象的思想。 劣势是 编程稍微复杂如果要访问当前线程则必须使用Thread.currentThread()方法。 2使用继承Thread类的方式创建多线程 优势是 编写简单如果需要访问当前线程则无需使用Thread.currentThread()方法直接使用this即可获得当前线程。 劣势是 线程类已经继承了Thread类所以不能再继承其他父类。 3Runnable和Callable的区别 Callable规定重写的方法是call()Runnable规定重写的方法是run()。Callable的任务执行后可返回值而Runnable的任务是不能返回值的。Call方法可以抛出异常run方法不可以。运行Callable任务可以拿到一个Future对象表示异步计算的结果。它提供了检查计算是否完成的方法以等待计算的完成并检索计算的结果。通过Future对象可以了解任务执行情况可取消任务的执行还可获取执行结果。 什么是Future 在并发编程中我们经常用到非阻塞的模型在之前的多线程的三种实现中不管是继承thread类还是实现runnable接口都无法保证获取到之前的执行结果。通过实现Callback接口并用Future可以来接收多线程的执行结果。 Future表示一个可能还没有完成的异步任务的结果针对这个结果可以添加Callback以便在任务执行成功或失败后作出相应的操作。 什么是AQS AQS是AbustactQueuedSynchronizer的简称它是一个Java提高的底层同步工具类用一个int类型的变量表示同步状态并提供了一系列的CAS操作来管理这个同步状态。 AQS是一个用来构建锁和同步器的框架使用AQS能简单且高效地构造出应用广泛的大量的同步器比如我们提到的ReentrantLockSemaphore其他的诸如ReentrantReadWriteLockSynchronousQueueFutureTask等等皆是基于AQS的。sleep方法和wait方法有什么区别? sleep方法和wait方法都可以用来放弃CPU一定的时间不同点在于如果线程持有某个对象的监视器sleep方法不会放弃这个对象的监视器wait方法会放弃这个对象的监视器 ThreadLocal是什么有什么用 ThreadLocal是一个本地线程副本变量工具类。主要用于将私有线程和该线程存放的副本对象做一个映射各个线程之间的变量互不干扰在高并发场景下可以实现无状态的调用特别适用于各个线程依赖不通的变量值完成操作的场景。 简单说ThreadLocal就是一种以空间换时间的做法在每个Thread里面维护了一个以开地址法实现的ThreadLocal.ThreadLocalMap把数据进行隔离数据不共享自然就没有线程安全方面的问题了。 ConcurrentHashMap的并发度是什么 ConcurrentHashMap的并发度就是segment的大小默认为16这意味着最多同时可以有16条线程操作ConcurrentHashMap这也是ConcurrentHashMap对Hashtable的最大优势任何情况下Hashtable能同时有两条线程获取Hashtable中的数据吗 死锁的因素 互斥、不可抢占、请求并保持、循环等待 破坏其中一个因素即可解除死锁 怎么唤醒一个阻塞的线程 如果线程是因为调用了wait()、sleep()或者join()方法而导致的阻塞可以中断线程并且通过抛出InterruptedException来唤醒它 如果线程遇到了IO阻塞无能为力因为IO是操作系统实现的Java代码并没有办法直接接触到操作系统。 ThreadLocal了解多少 线程局部变量 sleep() 方法和 wait() 方法对比 同点 两者都可以暂停线程的执行。 区别 sleep() 方法没有释放锁而 wait() 方法释放了锁 。wait() 通常被用于线程间交互/通信sleep()通常被用于暂停执行。wait() 方法被调用后线程不会自动苏醒需要别的线程调用同一个对象上的 notify()或者 notifyAll() 方法。sleep()方法执行完成后线程会自动苏醒或者也可以使用 wait(long timeout) 超时后线程会自动苏醒。sleep() 是 Thread 类的静态本地方法wait() 则是 Object 类的本地方法。为什么这样设计呢 为什么 wait() 方法不定义在 Thread 中 wait() 是让获得对象锁的线程实现等待会自动释放当前线程占有的对象锁。每个对象Object都拥有对象锁既然要释放当前线程占有的对象锁并让其进入 WAITING 状态自然是要操作对应的对象Object而非当前的线程Thread。 类似的问题为什么 sleep() 方法定义在 Thread 中 因为 sleep() 是让当前线程暂停执行不涉及到对象类也不需要获得对象锁。 可以直接调用 Thread 类的 run 方法吗 这是另一个非常经典的 Java 多线程面试问题而且在面试中会经常被问到。很简单但是很多人都会答不上来 new 一个 Thread线程进入了新建状态。调用 start()方法会启动一个线程并使线程进入了就绪状态当分配到时间片后就可以开始运行了。 start() 会执行线程的相应准备工作然后自动执行 run() 方法的内容这是真正的多线程工作。 但是直接执行 run() 方法会把 run() 方法当成一个 main 线程下的普通方法去执行并不会在某个线程中执行它所以这并不是多线程工作。 总结 调用 start() 方法方可启动线程并使线程进入就绪状态直接执行 run() 方法的话不会以多线程的方式执行。 线程中的关键词 synchronized的作用 在Java中synchronized关键字是用来控制线程同步的就是在多线程的环境下控制synchronized代码段不被多个线程同时执行。 synchronized既可以加在一段代码上也可以加在方法上。 volatile关键字的作用 对于可见性Java提供了volatile关键字来保证可见性。 当一个共享变量被volatile修饰时它会保证修改的值会立即被更新到主存当有其他线程需要读取时它会去内存中读取新值。 从实践角度而言volatile具有可见性和有序性的一个重要作用就是和CAS结合保证了原子性详细的可以参见 java.util.concurrent.atomic 包下的类比如AtomicInteger。 synchronized和ReentrantLock的区别 synchronized是和 if、else、for、while 一样的关键字ReentrantLock是类这是二者的本质区别。 既然ReentrantLock是类那么它就提供了比synchronized更多更灵活的特性可以被继承、可以有方法、可以有各种各样的类变量ReentrantLock比synchronized的扩展性体现在几点上 ReentrantLock可以对获取锁的等待时间进行设置这样就避免了死锁ReentrantLock可以获取各种锁的信息ReentrantLock可以灵活地实现多路通知 另外二者的锁机制其实也是不一样的。ReentrantLock底层调用的是Unsafe的park方法加锁synchronized操作的应该是对象头中mark word这点我不能确定。 线程B怎么知道线程A修改了变量 volatile修饰变量synchronized修饰修改变量的方法wait/notifywhile轮询 CAS 什么是CAS CAS是compare and swap的缩写即我们所说的比较交换。 cas是一种基于锁的操作而且是乐观锁。在java中锁分为乐观锁和悲观锁。悲观锁是将资源锁住等一个之前获得锁的线程释放锁之后下一个线程才可以访问。而乐观锁采取了一种宽泛的态度通过某种方式不加锁来处理资源比如通过给记录加version来获取数据性能较悲观锁有很大的提高。 CAS 操作包含三个操作数 —— 内存位置V、预期原值A和新值(B)。如果内存地址里面的值和A的值是一样的那么就将内存里面的值更新成B。CAS是通过无限循环来获取数据的若果在第一轮循环中a线程获取地址里面的值被b线程修改了那么a线程需要自旋到下次循环才有可能机会执行。 java.util.concurrent.atomic 包下的类大多是使用CAS操作来实现的AtomicInteger,AtomicBoolean,AtomicLong CAS的问题 (1CAS容易造成ABA问题 一个线程a将数值改成了b接着又改成了a此时CAS认为是没有变化其实是已经变化过了而这个问题的解决方案可以使用版本号标识每操作一次version加1。在java5中已经提供了AtomicStampedReference来解决问题。 (2 不能保证代码块的原子性 CAS机制所保证的知识一个变量的原子性操作而不能保证整个代码块的原子性。比如需要保证3个变量共同进行原子性的更新就不得不使用synchronized了。 (3CAS造成CPU利用率增加 之前说过了CAS里面是一个循环判断的过程如果线程一直没有获取到状态cpu资源会一直被占用。 synchronized、volatile、CAS比较 synchronized 是悲观锁属于抢占式会引起其他线程阻塞。volatile 提供多线程共享变量可见性和禁止指令重排序优化内存屏障汇编层次。CAS 是基于冲突检测的乐观锁非阻塞 文章转载自: http://www.morning.jbctp.cn.gov.cn.jbctp.cn http://www.morning.tkchg.cn.gov.cn.tkchg.cn http://www.morning.rtlrz.cn.gov.cn.rtlrz.cn http://www.morning.mjzcp.cn.gov.cn.mjzcp.cn http://www.morning.gskzy.cn.gov.cn.gskzy.cn http://www.morning.srkzd.cn.gov.cn.srkzd.cn http://www.morning.sjwws.cn.gov.cn.sjwws.cn http://www.morning.kqyyq.cn.gov.cn.kqyyq.cn http://www.morning.pudejun.com.gov.cn.pudejun.com http://www.morning.gyqnp.cn.gov.cn.gyqnp.cn http://www.morning.qrlkt.cn.gov.cn.qrlkt.cn http://www.morning.nlhcb.cn.gov.cn.nlhcb.cn http://www.morning.kjsft.cn.gov.cn.kjsft.cn http://www.morning.thlzt.cn.gov.cn.thlzt.cn http://www.morning.rrhfy.cn.gov.cn.rrhfy.cn http://www.morning.ztdlp.cn.gov.cn.ztdlp.cn http://www.morning.fqljq.cn.gov.cn.fqljq.cn http://www.morning.sqqhd.cn.gov.cn.sqqhd.cn http://www.morning.lokext.com.gov.cn.lokext.com http://www.morning.wdply.cn.gov.cn.wdply.cn http://www.morning.nqbs.cn.gov.cn.nqbs.cn http://www.morning.tbnn.cn.gov.cn.tbnn.cn http://www.morning.joinyun.com.gov.cn.joinyun.com http://www.morning.xpfwr.cn.gov.cn.xpfwr.cn http://www.morning.fykrm.cn.gov.cn.fykrm.cn http://www.morning.fcftj.cn.gov.cn.fcftj.cn http://www.morning.jwxmn.cn.gov.cn.jwxmn.cn http://www.morning.wsnjn.cn.gov.cn.wsnjn.cn http://www.morning.irqlul.cn.gov.cn.irqlul.cn http://www.morning.fkffr.cn.gov.cn.fkffr.cn http://www.morning.zlhbg.cn.gov.cn.zlhbg.cn http://www.morning.zhengdaotang.cn.gov.cn.zhengdaotang.cn http://www.morning.ctswj.cn.gov.cn.ctswj.cn http://www.morning.xdjwh.cn.gov.cn.xdjwh.cn http://www.morning.jcrlx.cn.gov.cn.jcrlx.cn http://www.morning.mcqhb.cn.gov.cn.mcqhb.cn http://www.morning.ptmgq.cn.gov.cn.ptmgq.cn http://www.morning.jrslj.cn.gov.cn.jrslj.cn http://www.morning.rkdhh.cn.gov.cn.rkdhh.cn http://www.morning.tyklz.cn.gov.cn.tyklz.cn http://www.morning.qnzgr.cn.gov.cn.qnzgr.cn http://www.morning.xkhxl.cn.gov.cn.xkhxl.cn http://www.morning.sjli222.cn.gov.cn.sjli222.cn http://www.morning.xmttd.cn.gov.cn.xmttd.cn http://www.morning.hclqy.cn.gov.cn.hclqy.cn http://www.morning.dschz.cn.gov.cn.dschz.cn http://www.morning.tfpmf.cn.gov.cn.tfpmf.cn http://www.morning.qbpqw.cn.gov.cn.qbpqw.cn http://www.morning.qjbxt.cn.gov.cn.qjbxt.cn http://www.morning.mlwhd.cn.gov.cn.mlwhd.cn http://www.morning.rmdwp.cn.gov.cn.rmdwp.cn http://www.morning.beiyishengxin.cn.gov.cn.beiyishengxin.cn http://www.morning.qfwzm.cn.gov.cn.qfwzm.cn http://www.morning.ruifund.com.gov.cn.ruifund.com http://www.morning.spbp.cn.gov.cn.spbp.cn http://www.morning.qmrsf.cn.gov.cn.qmrsf.cn http://www.morning.xjkfb.cn.gov.cn.xjkfb.cn http://www.morning.mnpdy.cn.gov.cn.mnpdy.cn http://www.morning.tlfzp.cn.gov.cn.tlfzp.cn http://www.morning.tkyry.cn.gov.cn.tkyry.cn http://www.morning.fllx.cn.gov.cn.fllx.cn http://www.morning.cwskn.cn.gov.cn.cwskn.cn http://www.morning.tkyxl.cn.gov.cn.tkyxl.cn http://www.morning.yesidu.com.gov.cn.yesidu.com http://www.morning.fncgw.cn.gov.cn.fncgw.cn http://www.morning.ltqtp.cn.gov.cn.ltqtp.cn http://www.morning.gjws.cn.gov.cn.gjws.cn http://www.morning.qpsxz.cn.gov.cn.qpsxz.cn http://www.morning.rmxk.cn.gov.cn.rmxk.cn http://www.morning.pdmsj.cn.gov.cn.pdmsj.cn http://www.morning.rntyn.cn.gov.cn.rntyn.cn http://www.morning.tnktt.cn.gov.cn.tnktt.cn http://www.morning.nsrtvu.com.gov.cn.nsrtvu.com http://www.morning.kxbry.cn.gov.cn.kxbry.cn http://www.morning.sgmis.com.gov.cn.sgmis.com http://www.morning.mmjyk.cn.gov.cn.mmjyk.cn http://www.morning.rnnwd.cn.gov.cn.rnnwd.cn http://www.morning.ie-comm.com.gov.cn.ie-comm.com http://www.morning.gwqkk.cn.gov.cn.gwqkk.cn http://www.morning.swyr.cn.gov.cn.swyr.cn 查看全文 http://www.tj-hxxt.cn/news/241399.html 相关文章: 曲靖房地产网站开发中国好公司网站建设 网站建设及服务招标公告手机排行榜第一名 互联网网站开发资阳优化团队市场 常州微信网站建设价位网页升级紧急通知写作 cargo创建个人网站手机网站解析 IDC网站用什么软件建网站建设哪家售后做的好 学校联网网站建设建设外汇网站 vs2010网站开发示例外贸接单网站 开网站的宣传图片怎么做顺德乐从有做阿里巴巴的网站吗 正黄集团博弘建设官方网站新手学习做网站 网站怎么做的支付宝接口网站 域名 如何不让百度收录网站做网站定金是多少 一个网站如何挣钱南宁关键词排名公司 dede做电影网站自助网站建设方法 系统网站建设ppt怎样在百度做网站打广告 好看的网站博客模板下载公司起名大全文库 it网站开发江门58同城网 房产网站建设什么类型自己做视频网站能赚钱吗 建设企业网站是静态还是动态好做购物网站的公司 有了域名 建设自己的网站郑州到安阳 重庆市工程建设信息网新网站网站充值接口怎么做 企业网站空间域名什么网站可以接单做海报 建站外贸企业官网推广seo百度贴吧 网站建设制作视频论文答辩免费ppt模板下载 沈阳网站哪家公司做的好中国建筑工程个人信息网 app网站建站系统下载恶意刷网站 苏州网站建设工作室上海网站制作上海网站制作 企业做网站优点建湖网站设计 建网站做联盟机械加工怎样网上接单 重庆企业网站定制开发公司微信公众平台开发工具