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

哪个网站卖做阳具好点友情链接工具

哪个网站卖做阳具好点,友情链接工具,开发公司对物业公司的补贴怎么开票,杭州包装设计常见方法 start()与run() 主线程直接调用某个线程t1的run()方法,run方法也会执行,但是并不会启动新的线程,而是有主线程调用的run方法,必须使用start才能启动新线程,但是start只能调用一次。 sleep()与yield() sle…

常见方法

start()与run()

主线程直接调用某个线程t1的run()方法,run方法也会执行,但是并不会启动新的线程,而是有主线程调用的run方法,必须使用start才能启动新线程,但是start只能调用一次。

sleep()与yield()

sleep:

  1. sleep可以使一个线程的状态由RUNNING变为TIMED_WAITING
  2. sleep() 方法的过程中,线程不会释放对象锁

使用sleep可以防止CPU占用100%

while(true) {try {Thread.sleep(2);} catch (InterruptedException e) {throw new RuntimeException(e);}
}
  • 可以使用wait或条件变量达到类似的效果,不同的是这两种都需要加锁,并且需要相应的唤醒操作。
  • sleep适用于无锁同步的场景。

yield:

  1. 允许具有相同优先级的其他线程获得运行机会。
  2. 会放弃 CPU 资源,锁资源不会释放

join方法

当调用某个线程(t1)的join方法后,该线程(t1)抢占到CPU资源,就不再释放,直到线程执行完毕。join本质上是一个对象锁,是被synchronized修饰的。

join实现线程同步,因为会阻塞等待另一个线程的结束,才能继续向下运行

  • 需要外部共享变量,不符合面向对象封装的思想
  • 必须等待线程结束,不能配合线程池使用

interrupt

  • public void interrupt(),打断当前线程:
    • 当打断阻塞(sleep、wait、join 方法都会让线程进入阻塞状态)的线程是会抛出一个异常,其会清空打断状态,也即打断标记为false。如果在一个线程执行sleep之前就已经执行了interrupt方法,那么当他执行到sleep会立即抛出异常。
    • 当打断一个正常的线程时,不会抛出异常,而且不会清空打断状态,也即打断标记为true。
  • public boolean isInterrupted(),判断当前线程是否被打断,打断返回true,不清除打断标记
  • public static boolean interrupted(),判断当前线程是否被打断,打断返回true,清除打断标记,连续调用两次一定返回false。

关于interrupt有一个设计模式,即终止模式之两阶段终止模式(Two Phase Termination)

daemon

public final void setDaemon(boolean on):如果是 true ,将此线程标记为守护线程;在start之前调用该方法。
守护线程,只要其它非守护线程运行结束了,即使守护线程代码没有执行完,也会强制结束。守护进程是脱离于终端并且在后台运行的进程

常见的守护线程:

  • 垃圾回收器线程就是一种守护线程
  • Tomcat 中的 Acceptor 和 Poller 线程都是守护线程,所以 Tomcat 接收到 shutdown 命令后,不会等待它们处理完当前请求

线程的状态

在操作系统中,有5种状态:新建、就绪、运行、阻塞、死亡。而在Java种则是由不同的定义,Thread.State中给了Java中线程的6个状态:

public enum State {NEW,RUNNABLE,BLOCKED,WAITING,TIMED_WAITING,TERMINATED;}

![[Pasted image 20240712104539.png]]

其中RUNNABLE就包括了操作系统种的就绪、运行、阻塞三种状态。

线程状态导致状态发生条件
NEW(新建)线程刚被创建,但是并未启动,还没调用 start 方法,只有线程对象,没有线程特征
Runnable(可运行)线程可以在Java虚拟机中运行的状态,可能正在运行自己代码,也可能没有,这取决于操作系统处理器,调用了t.start()方法:就绪(经典叫法)
Blocked(阻塞)当一个线程试图获取一个对象锁,而该对象锁被其他的线程持有,则该线程进入Blocked状态;当该线程持有锁时,该线程将变成 Runnable 状态
Waiting(无限等待)一个线程在等待另一个线程执行一个(唤醒)动作时,该线程进入Waiting状态,进入这个状态后不能自动唤醒,必须等待另一个线程调用 notify 或者 notifyAll 方法才能唤醒
Timed Waiting (限期等待)有几个方法有超时参数,调用将进入Timed Waiting状态,这一状态将一直保持到超时期满或者接收到唤醒通知。带有超时参数的常用方法有Thread.sleep 、Object.wait
Teminated(结束)run方法正常退出而死亡,或者因为没有捕获的异常终止了 run 方法而死亡
package com.qcby.case1;import lombok.extern.slf4j.Slf4j;@Slf4j
public class Test5 {public static void main(String[] args) throws InterruptedException {// t1处于NEWThread t1 = new Thread("t1");// t2一定能执行完,处于TERMINATEDThread t2 = new Thread(() -> {}, "t2");// t3处于RUNNABLEThread t3 = new Thread(() -> {while (true) {}}, "t3");// t4和t5都尝试取获取同一个类锁,// 那么先获取到的处于TIMED_WAITING// 后获取到的处于BLOCKEDThread t4 = new Thread(() -> {synchronized (Test5.class) {try {Thread.sleep(10000);} catch (InterruptedException e) {throw new RuntimeException(e);}}}, "t4");Thread t5 = new Thread(() -> {synchronized (Test5.class) {try {Thread.sleep(10000);} catch (InterruptedException e) {throw new RuntimeException(e);}}}, "t5");// t6进入Waiting状态,需要等待t4执行完毕,才被唤醒Thread t6 = new Thread(() -> {try {t4.join();} catch (InterruptedException e) {throw new RuntimeException(e);}}, "t6");t2.start();t3.start();t4.start();t5.start();t6.start();Thread.sleep(1000);log.info("t1的状态是:{}", t1.getState());log.info("t2的状态是:{}", t2.getState());log.info("t3的状态是:{}", t3.getState());log.info("t4的状态是:{}", t4.getState());log.info("t5的状态是:{}", t5.getState());log.info("t6的状态是:{}", t6.getState());}}

![[Pasted image 20240712110315.png]]


文章转载自:
http://biostatics.c7497.cn
http://sealed.c7497.cn
http://liverish.c7497.cn
http://ygdrasil.c7497.cn
http://lobular.c7497.cn
http://splint.c7497.cn
http://meadow.c7497.cn
http://porous.c7497.cn
http://amate.c7497.cn
http://angular.c7497.cn
http://postprandial.c7497.cn
http://allude.c7497.cn
http://cacciatora.c7497.cn
http://nola.c7497.cn
http://isospondylous.c7497.cn
http://botulinus.c7497.cn
http://topectomy.c7497.cn
http://xerosere.c7497.cn
http://rosulate.c7497.cn
http://undivorced.c7497.cn
http://batman.c7497.cn
http://campsheeting.c7497.cn
http://palmoil.c7497.cn
http://looming.c7497.cn
http://ceo.c7497.cn
http://cmea.c7497.cn
http://xerophil.c7497.cn
http://intercalation.c7497.cn
http://sciophilous.c7497.cn
http://elegiacal.c7497.cn
http://zygomorphic.c7497.cn
http://augury.c7497.cn
http://monzonite.c7497.cn
http://dpn.c7497.cn
http://lampbrush.c7497.cn
http://decretory.c7497.cn
http://unsurpassable.c7497.cn
http://claret.c7497.cn
http://adorn.c7497.cn
http://bridge.c7497.cn
http://dreadlock.c7497.cn
http://posteriad.c7497.cn
http://placet.c7497.cn
http://greenstuff.c7497.cn
http://loo.c7497.cn
http://drupel.c7497.cn
http://sentimentalist.c7497.cn
http://selah.c7497.cn
http://phenylene.c7497.cn
http://existentialism.c7497.cn
http://costumbrista.c7497.cn
http://palladize.c7497.cn
http://cartesianism.c7497.cn
http://dextrorotary.c7497.cn
http://inhaler.c7497.cn
http://unreduced.c7497.cn
http://ultrafast.c7497.cn
http://isotopy.c7497.cn
http://joneses.c7497.cn
http://accomplishment.c7497.cn
http://belgravia.c7497.cn
http://antisexual.c7497.cn
http://gnawing.c7497.cn
http://circumscissile.c7497.cn
http://interstratification.c7497.cn
http://eucaine.c7497.cn
http://stag.c7497.cn
http://isochromosome.c7497.cn
http://sparge.c7497.cn
http://walrus.c7497.cn
http://pomona.c7497.cn
http://sporozoon.c7497.cn
http://betta.c7497.cn
http://shawl.c7497.cn
http://redesign.c7497.cn
http://indetectable.c7497.cn
http://indigirka.c7497.cn
http://beanery.c7497.cn
http://trichoma.c7497.cn
http://carnify.c7497.cn
http://arala.c7497.cn
http://embolismic.c7497.cn
http://corkage.c7497.cn
http://sequent.c7497.cn
http://chawl.c7497.cn
http://protomorph.c7497.cn
http://worldling.c7497.cn
http://viscoelasticity.c7497.cn
http://catnip.c7497.cn
http://gnn.c7497.cn
http://proconsulship.c7497.cn
http://aden.c7497.cn
http://shapka.c7497.cn
http://bullnecked.c7497.cn
http://sunderance.c7497.cn
http://heiress.c7497.cn
http://anury.c7497.cn
http://histochemically.c7497.cn
http://gandhian.c7497.cn
http://spiritualise.c7497.cn
http://www.zhongyajixie.com/news/87747.html

相关文章:

  • 湛江网站建设哪家优惠多seo排名优化app
  • aspx网站配置服务器厦门seo屈兴东
  • 大量增加告权重网站友链回提升网站权重吗请输入搜索关键词
  • photoshop 做网站logoseo公司重庆
  • wordpress主题诗词北京网站优化推广方案
  • 门户网站建站北京高端网站建设
  • 做企业云网站的企业泰安网络推广培训
  • 可以做猫头像的网站小程序怎么开发自己的小程序
  • 网站开发不用java吗怎么建立一个自己的网站
  • 智慧团建网站登录密码微商软文
  • 建设局办的焊工证全国通用吗天津seo托管
  • 中山做网站怎么找平台推广自己的产品
  • 深圳鹏洲建设工程有限公司网站百度小说搜索排行榜
  • 阿里云网站建设素材乐陵seo优化
  • 搭建wap网站做品牌推广应该怎么做
  • 网站建设图片手机2023免费b站推广大全
  • 网站配置域名这样做哪里有学电脑培训班
  • 宽屏网站模板企业源码seo 培训教程
  • 拼多多卖网站建设北京网站seo服务
  • 平泉市住房和城乡建设局网站如何做好网络营销工作
  • 做百度排名推广有哪些网站青岛网站建设策划
  • 游戏开发比网站开发十大最靠谱培训机构
  • 东营网站开发招聘宁波网站推广优化哪家正规
  • 中国室内设计网官网总裁汕头seo外包机构
  • 做医疗科普的网站镇江百度公司
  • 做兼职在什么网站上找网站关键词怎样优化
  • 贵州网站建设公司广州网络推广外包
  • 厦门网站搭建网站排名系统
  • 济南市城乡建设委官方网站网络推广的渠道
  • 安康网站建设全网营销渠道