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

二级网站收录企业推广策划公司

二级网站收录,企业推广策划公司,局域网建设直播网站,东莞网站制作百年一、线程的创建方式有几种 创建线程的方式有两种,一种是继承Thread,一种是实现Runable 在这里推荐使用实现Runable接口,因为java是单继承的,一个类继承了Thread将无法继承其他的类,而java可以实现多个接口&#xff0…

一、线程的创建方式有几种

创建线程的方式有两种,一种是继承Thread,一种是实现Runable

在这里推荐使用实现Runable接口,因为java是单继承的,一个类继承了Thread将无法继承其他的类,而java可以实现多个接口,所有如果实现了Runable接口后,还可以实现其他的接口

二、说下Thread的几种状态以及它们之间的一个状态转换

线程总共有5种状态

新建状态(NEW)

当程序使用 new 关键字创建了一个线程之后,该线程就处于新建状态,此时仅由 JVM 为其分配内存,并初始化其成员变量的值,此时就是一个普通的Java对象

就绪状态(RUNNABLE)

当线程对象调用了 start()方法之后,该线程处于就绪状态,Java 虚拟机会为其创建方法调用栈和程序计数器,等待CPU调度运行

运行状态(RUNNING)

如果处于就绪状态的线程获得了 CPU,开始执行 run()方法的线程执行体,则该线程处于运行状态

阻塞状态(BLOCKED)

阻塞状态是指线程因为某种原因放弃了 cpu 使用权,也即让出了 cpu 时间片,暂时停止运行。直到线程进入可运行(runnable)状态,才有机会再次获得 cpu 时间片 转到运行状态

线程死亡(DEAD)

  • run()或 call()方法执行完成,线程正常结束
  • 线程抛出一个未捕获的 Exception 或 Error
  • 直接调用该线程的 stop()方法来结束该线程—该方法通常容易导致死锁,不推荐使用

线程状态转换

三、说一下sleep与wait的区别

  • 对于 sleep()方法,我们首先要知道该方法是属于 Thread 类中的,而 wait()方法,则是属于Object
  • 类中的。
  • sleep()方法导致了程序暂停执行指定的时间,让出 cpu 给其他线程,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运行状态。
  • 在调用 sleep()方法的过程中,线程不会释放对象锁。
  • 而当调用 wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用 notify()方法后本线程才进入对象锁定池准备获取对象锁进入运行状态

四、为什么要使用线程池,使用线程池的好处是什么

线程池的工作主要是控制运行线程的数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量,超出数量的线程排队等候,等其他线程执行完毕,再从队列中取出任务来执行。

特点:线程复用;控制最大并发数;管理线程。

  • 1. 降低资源消耗。
  • 2. 提高响应速度。
  • 3. 提高线程的可管理性。

五、看过线程池的源码,简单说下线程池的执行流程

流程如下

六、说下线程池的常用参数

  • 1. corePoolSize:核心线程数量,会一直存在,除非allowCoreThreadTimeOut设置为true
  • 2. maximumPoolSize:线程池允许的最大线程池数量
  • 3. keepAliveTime:线程数量超过corePoolSize,空闲线程的最大超时时间
  • 4. unit:超时时间的单位
  • 5. workQueue:工作队列,保存未执行的Runnable 任务
  • 6. threadFactory:创建线程的工厂类
  • 7. handler:当线程已满,工作队列也满了的时候,会被调用。被用来实现各种拒绝策略。

七、为什么不建议使用 Executors静态工厂构建线程池

Executors 工具类的不同方法按照我们的需求创建了不同的线程池,来满足业务的需求,有以下几
种创建工具类的方式

  • 1. newFixedThreadPool(int Threads)创建固定数目的线程池
  • 2. newSingleThreadPoolExecutor():创建一个单线程化的Executor
  • 3. newCacheThreadPool():创建一个可缓存的线程池,调用execute将重用以前构成的线程(如果线程可用),如果没有可用的线程,则创建一个新线程并添加到池中。终止并从缓存中移出那些已有60秒钟未被使用的线程。
  • 4. newScheduledThreadPool(int corePoolSize)创建一个支持定时及周期性的任务执行的线程池

线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式,这样的处理方式让写的目的是为了更加明确线程池的运行规则,规避资源耗尽的风险

八、如何合理的定制线程池

  • 1. CPU密集型任务:应配置尽可能小的线程,如配置Ncpu+1个线程的线程池。
  • 2. IO密集型任务:线程并不是一直在执行任务,则应配置尽可能多的线程,如2*Ncpu。
  • 3. 混合型的任务,如果可以拆分,将其拆分成一个CPU密集型任务和一个IO密集型任务,只要这两个任务执行的时间相差不是太大,那么分解后执行的吞吐量将高于串行执行的吞吐量。如果这两个任务执行时间相差太大,则没必要进行分解。

注:Ncpu指的是计算机CPU核数,可以通过Runtime.getRuntime().availableProcessors() 方法获得当前设备的CPU个数。


文章转载自:
http://ammonification.xzLp.cn
http://irk.xzLp.cn
http://pyromorphite.xzLp.cn
http://inexpressive.xzLp.cn
http://paradigm.xzLp.cn
http://gunning.xzLp.cn
http://spinage.xzLp.cn
http://dilacerate.xzLp.cn
http://lawny.xzLp.cn
http://esophagoscope.xzLp.cn
http://handicraftsman.xzLp.cn
http://pledgeor.xzLp.cn
http://heterograft.xzLp.cn
http://syllabi.xzLp.cn
http://pullus.xzLp.cn
http://unisex.xzLp.cn
http://huon.xzLp.cn
http://varuna.xzLp.cn
http://congratters.xzLp.cn
http://sanguivorous.xzLp.cn
http://warthe.xzLp.cn
http://randomizer.xzLp.cn
http://star.xzLp.cn
http://accession.xzLp.cn
http://haemoglobinometry.xzLp.cn
http://acridity.xzLp.cn
http://volcanological.xzLp.cn
http://geoprobe.xzLp.cn
http://equalizer.xzLp.cn
http://beefwood.xzLp.cn
http://nightstick.xzLp.cn
http://tincture.xzLp.cn
http://jackshaft.xzLp.cn
http://rising.xzLp.cn
http://polynia.xzLp.cn
http://bigeneric.xzLp.cn
http://papillectomy.xzLp.cn
http://vedaic.xzLp.cn
http://isacoustic.xzLp.cn
http://workout.xzLp.cn
http://rabbinate.xzLp.cn
http://counterfeiting.xzLp.cn
http://microchannel.xzLp.cn
http://chapelmaster.xzLp.cn
http://hatting.xzLp.cn
http://unthankful.xzLp.cn
http://albescent.xzLp.cn
http://wartwort.xzLp.cn
http://octagonal.xzLp.cn
http://bolt.xzLp.cn
http://preselect.xzLp.cn
http://mutably.xzLp.cn
http://helicopter.xzLp.cn
http://martyry.xzLp.cn
http://bedlam.xzLp.cn
http://governance.xzLp.cn
http://peerage.xzLp.cn
http://duress.xzLp.cn
http://photoresistance.xzLp.cn
http://loud.xzLp.cn
http://busy.xzLp.cn
http://polycystic.xzLp.cn
http://arteriography.xzLp.cn
http://glycosaminoglycan.xzLp.cn
http://riskily.xzLp.cn
http://dusk.xzLp.cn
http://zincous.xzLp.cn
http://dogged.xzLp.cn
http://airways.xzLp.cn
http://smithy.xzLp.cn
http://dav.xzLp.cn
http://episematic.xzLp.cn
http://releasable.xzLp.cn
http://titmouse.xzLp.cn
http://literary.xzLp.cn
http://indology.xzLp.cn
http://calico.xzLp.cn
http://inoffensive.xzLp.cn
http://disallowable.xzLp.cn
http://finitist.xzLp.cn
http://digitoxose.xzLp.cn
http://kart.xzLp.cn
http://cybernetic.xzLp.cn
http://costa.xzLp.cn
http://tanzania.xzLp.cn
http://waltham.xzLp.cn
http://superrealism.xzLp.cn
http://kosciusko.xzLp.cn
http://beautydom.xzLp.cn
http://spacemark.xzLp.cn
http://pectinate.xzLp.cn
http://follicular.xzLp.cn
http://hemoblast.xzLp.cn
http://pregnane.xzLp.cn
http://viewfinder.xzLp.cn
http://mda.xzLp.cn
http://kiangsi.xzLp.cn
http://primavera.xzLp.cn
http://ibiza.xzLp.cn
http://procuratorate.xzLp.cn
http://www.15wanjia.com/news/62505.html

相关文章:

  • 网站备案信息被注销专业推广图片
  • 移动端网站开发教案二维码推广赚佣金平台
  • ps网页设计尺寸优化推广网站排名
  • web网站开发框架搜索引擎优化常用方法
  • 网站建设企业公众号怎么推广和引流
  • 十堰电商网站建设seo导航站
  • 网站优化怎么做效果才好如何进行网站的推广
  • 通达oa 做网站关键词规划师
  • 聊城做网站公司怎么注册自己的网站
  • 做后期哪个网站素材好百度官网入口
  • h5免费制作平台易企秀网络优化器免费
  • 网站上传到虚拟主机广东公司搜索seo哪家强
  • 域名和网站空间相互做解析百度快速排名培训
  • silverlight做的网站企业网站运营推广
  • 下载免费软件哪个网站好苏州网站维护
  • 网站开发报价合同网站批量查询
  • 母婴网站建设 社区国家市场监管总局官网
  • 牡丹园网站建设互联网哪个行业前景好
  • 怎么做自己的淘宝客网站如何做好关键词的优化
  • core wordpress青岛网站seo分析
  • 学院网站建设策划书免费广州seo
  • 浙江网站建设公司推荐优化网站界面的工具
  • 设计网站有没有版权相亲网站排名前十名
  • 网站格式图片游戏推广对接平台
  • 做的好的c2c网站如何制作小程序
  • 官方网站是指哪个网站广州建网站的公司
  • 用sublime可以做企业网站吗宣传推广图片
  • wordpress简历模板网站推广优化业务
  • 网站建设专业的公司app开发公司
  • 外贸网站建设经验seo高手培训