线程生命周期及状态

在这里插入图片描述

/**
 * 示例2 - 多线程运行状态切换示例 <br/>
 */
public class Demo2 {
	public static Thread thread1;
	public static Demo2 obj;

	public static void main(String[] args) throws Exception {
		// 第一种状态切换 - 新建 -> 运行 -> 终止
		System.out.println("#######第一种状态切换  - 新建 -> 运行 -> 终止################################");
		Thread thread1 = new Thread(new Runnable() {
			@Override
			public void run() {
				System.out.println("thread1当前状态:" + Thread.currentThread().getState().toString());
				System.out.println("thread1 执行了");
			}
		});
		System.out.println("没调用start方法,thread1当前状态:" + thread1.getState().toString());
		thread1.start();
		Thread.sleep(2000L); // 等待thread1执行结束,再看状态
		System.out.println("等待两秒,再看thread1当前状态:" + thread1.getState().toString());
		// thread1.start(); TODO 注意,线程终止之后,再进行调用,会抛出IllegalThreadStateException异常

		System.out.println();
		System.out.println("############第二种:新建 -> 运行 -> 等待 -> 运行 -> 终止(sleep方式)###########################");
		Thread thread2 = new Thread(new Runnable() {
			@Override
			public void run() {
				try {// 将线程2移动到等待状态,1500后自动唤醒
					Thread.sleep(1500);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
				System.out.println("thread2当前状态:" + Thread.currentThread().getState().toString());
				System.out.println("thread2 执行了");
			}
		});
		System.out.println("没调用start方法,thread2当前状态:" + thread2.getState().toString());
		thread2.start();
		System.out.println("调用start方法,thread2当前状态:" + thread2.getState().toString());
		Thread.sleep(200L); // 等待200毫秒,再看状态
		System.out.println("等待200毫秒,再看thread2当前状态:" + thread2.getState().toString());
		Thread.sleep(3000L); // 再等待3秒,让thread2执行完毕,再看状态
		System.out.println("等待3秒,再看thread2当前状态:" + thread2.getState().toString());

		System.out.println();
		System.out.println("############第三种:新建 -> 运行 -> 阻塞 -> 运行 -> 终止###########################");
		Thread thread3 = new Thread(new Runnable() {
			@Override
			public void run() {
				synchronized (Demo2.class) {
					System.out.println("thread3当前状态:" + Thread.currentThread().getState().toString());
					System.out.println("thread3 执行了");
				}
			}
		});
		synchronized (Demo2.class) {
			System.out.println("没调用start方法,thread3当前状态:" + thread3.getState().toString());
			thread3.start();
			System.out.println("调用start方法,thread3当前状态:" + thread3.getState().toString());
			Thread.sleep(200L); // 等待200毫秒,再看状态
			System.out.println("等待200毫秒,再看thread3当前状态:" + thread3.getState().toString());
		}
		Thread.sleep(3000L); // 再等待3秒,让thread3执行完毕,再看状态
		System.out.println("等待3秒,让thread3抢到锁,再看thread3当前状态:" + thread3.getState().toString());

	}
}
"C:\Program Files (x86)\Java\jdk1.8.0_152\bin\java.exe" "-javaagent:E:\idea\IntelliJ IDEA 2018.1.5\lib\idea_rt.jar=64954:E:\idea\IntelliJ IDEA 2018.1.5\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files (x86)\Java\jdk1.8.0_152\jre\lib\charsets.jar;C:\Program Files (x86)\Java\jdk1.8.0_152\jre\lib\deploy.jar;C:\Program Files (x86)\Java\jdk1.8.0_152\jre\lib\ext\access-bridge-32.jar;C:\Program Files (x86)\Java\jdk1.8.0_152\jre\lib\ext\cldrdata.jar;C:\Program Files (x86)\Java\jdk1.8.0_152\jre\lib\ext\dnsns.jar;C:\Program Files (x86)\Java\jdk1.8.0_152\jre\lib\ext\jaccess.jar;C:\Program Files (x86)\Java\jdk1.8.0_152\jre\lib\ext\jfxrt.jar;C:\Program Files (x86)\Java\jdk1.8.0_152\jre\lib\ext\localedata.jar;C:\Program Files (x86)\Java\jdk1.8.0_152\jre\lib\ext\nashorn.jar;C:\Program Files (x86)\Java\jdk1.8.0_152\jre\lib\ext\sunec.jar;C:\Program Files (x86)\Java\jdk1.8.0_152\jre\lib\ext\sunjce_provider.jar;C:\Program Files (x86)\Java\jdk1.8.0_152\jre\lib\ext\sunmscapi.jar;C:\Program Files (x86)\Java\jdk1.8.0_152\jre\lib\ext\sunpkcs11.jar;C:\Program Files (x86)\Java\jdk1.8.0_152\jre\lib\ext\zipfs.jar;C:\Program Files (x86)\Java\jdk1.8.0_152\jre\lib\javaws.jar;C:\Program Files (x86)\Java\jdk1.8.0_152\jre\lib\jce.jar;C:\Program Files (x86)\Java\jdk1.8.0_152\jre\lib\jfr.jar;C:\Program Files (x86)\Java\jdk1.8.0_152\jre\lib\jfxswt.jar;C:\Program Files (x86)\Java\jdk1.8.0_152\jre\lib\jsse.jar;C:\Program Files (x86)\Java\jdk1.8.0_152\jre\lib\management-agent.jar;C:\Program Files (x86)\Java\jdk1.8.0_152\jre\lib\plugin.jar;C:\Program Files (x86)\Java\jdk1.8.0_152\jre\lib\resources.jar;C:\Program Files (x86)\Java\jdk1.8.0_152\jre\lib\rt.jar;C:\Users\厌烦百分之百\Desktop\新建文件夹\laixi\szlx20200425-master\folkcam-laixi-cp-new\target\classes;E:\repository\org\springframework\boot\spring-boot-starter\2.1.11.RELEASE\spring-boot-starter-2.1.11.RELEASE.jar;E:\repository\org\springframework\boot\spring-boot\2.1.11.RELEASE\spring-boot-2.1.11.RELEASE.jar;E:\repository\org\springframework\boot\spring-boot-autoconfigure\2.1.11.RELEASE\spring-boot-autoconfigure-2.1.11.RELEASE.jar;E:\repository\org\springframework\boot\spring-boot-starter-logging\2.1.11.RELEASE\spring-boot-starter-logging-2.1.11.RELEASE.jar;E:\repository\org\apache\logging\log4j\log4j-to-slf4j\2.11.2\log4j-to-slf4j-2.11.2.jar;E:\repository\org\apache\logging\log4j\log4j-api\2.11.2\log4j-api-2.11.2.jar;E:\repository\org\slf4j\jul-to-slf4j\1.7.29\jul-to-slf4j-1.7.29.jar;E:\repository\javax\annotation\javax.annotation-api\1.3.2\javax.annotation-api-1.3.2.jar;E:\repository\org\springframework\spring-core\5.1.12.RELEASE\spring-core-5.1.12.RELEASE.jar;E:\repository\org\springframework\spring-jcl\5.1.12.RELEASE\spring-jcl-5.1.12.RELEASE.jar;E:\repository\org\yaml\snakeyaml\1.23\snakeyaml-1.23.jar;E:\repository\alipay-sdk-java\alipay-sdk-java\2017030717163\alipay-sdk-java-2017030717163.jar;E:\repository\org\apache\commons\commons-pool2\2.6.2\commons-pool2-2.6.2.jar;E:\repository\org\springframework\boot\spring-boot-starter-aop\2.1.11.RELEASE\spring-boot-starter-aop-2.1.11.RELEASE.jar;E:\repository\org\springframework\spring-aop\5.1.12.RELEASE\spring-aop-5.1.12.RELEASE.jar;E:\repository\org\aspectj\aspectjweaver\1.9.5\aspectjweaver-1.9.5.jar;E:\repository\org\springframework\boot\spring-boot-starter-web\2.1.11.RELEASE\spring-boot-starter-web-2.1.11.RELEASE.jar;E:\repository\org\springframework\boot\spring-boot-starter-json\2.1.11.RELEASE\spring-boot-starter-json-2.1.11.RELEASE.jar;E:\repository\com\fasterxml\jackson\core\jackson-databind\2.9.10.1\jackson-databind-2.9.10.1.jar;E:\repository\com\fasterxml\jackson\core\jackson-annotations\2.9.10\jackson-annotations-2.9.10.jar;E:\repository\com\fasterxml\jackson\core\jackson-core\2.9.10\jackson-core-2.9.10.jar;E:\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.9.10\jackson-datatype-jdk8-2.9.10.jar;E:\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.9.10\jackson-datatype-jsr310-2.9.10.jar;E:\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.9.10\jackson-module-parameter-names-2.9.10.jar;E:\repository\org\springframework\boot\spring-boot-starter-tomcat\2.1.11.RELEASE\spring-boot-starter-tomcat-2.1.11.RELEASE.jar;E:\repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.29\tomcat-embed-core-9.0.29.jar;E:\repository\org\apache\tomcat\embed\tomcat-embed-el\9.0.29\tomcat-embed-el-9.0.29.jar;E:\repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.29\tomcat-embed-websocket-9.0.29.jar;E:\repository\org\hibernate\validator\hibernate-validator\6.0.18.Final\hibernate-validator-6.0.18.Final.jar;E:\repository\javax\validation\validation-api\2.0.1.Final\validation-api-2.0.1.Final.jar;E:\repository\org\jboss\logging\jboss-logging\3.3.3.Final\jboss-logging-3.3.3.Final.jar;E:\repository\com\fasterxml\classmate\1.4.0\classmate-1.4.0.jar;E:\repository\org\springframework\spring-web\5.1.12.RELEASE\spring-web-5.1.12.RELEASE.jar;E:\repository\org\springframework\spring-webmvc\5.1.12.RELEASE\spring-webmvc-5.1.12.RELEASE.jar;E:\repository\org\springframework\spring-expression\5.1.12.RELEASE\spring-expression-5.1.12.RELEASE.jar;E:\repository\org\springframework\boot\spring-boot-starter-thymeleaf\2.1.11.RELEASE\spring-boot-starter-thymeleaf-2.1.11.RELEASE.jar;E:\repository\org\thymeleaf\thymeleaf-spring5\3.0.11.RELEASE\thymeleaf-spring5-3.0.11.RELEASE.jar;E:\repository\org\thymeleaf\thymeleaf\3.0.11.RELEASE\thymeleaf-3.0.11.RELEASE.jar;E:\repository\org\attoparser\attoparser\2.0.5.RELEASE\attoparser-2.0.5.RELEASE.jar;E:\repository\org\unbescape\unbescape\1.1.6.RELEASE\unbescape-1.1.6.RELEASE.jar;E:\repository\org\thymeleaf\extras\thymeleaf-extras-java8time\3.0.4.RELEASE\thymeleaf-extras-java8time-3.0.4.RELEASE.jar;E:\repository\net\sourceforge\nekohtml\nekohtml\1.9.22\nekohtml-1.9.22.jar;E:\repository\mysql\mysql-connector-java\5.1.46\mysql-connector-java-5.1.46.jar;E:\repository\org\mybatis\generator\mybatis-generator-core\1.3.6\mybatis-generator-core-1.3.6.jar;E:\repository\tk\mybatis\mapper-spring-boot-starter\2.1.5\mapper-spring-boot-starter-2.1.5.jar;E:\repository\org\springframework\boot\spring-boot-starter-jdbc\2.1.11.RELEASE\spring-boot-starter-jdbc-2.1.11.RELEASE.jar;E:\repository\com\zaxxer\HikariCP\3.2.0\HikariCP-3.2.0.jar;E:\repository\org\springframework\spring-jdbc\5.1.12.RELEASE\spring-jdbc-5.1.12.RELEASE.jar;E:\repository\org\mybatis\mybatis\3.4.6\mybatis-3.4.6.jar;E:\repository\org\mybatis\mybatis-spring\1.3.2\mybatis-spring-1.3.2.jar;E:\repository\tk\mybatis\mapper-core\1.1.5\mapper-core-1.1.5.jar;E:\repository\javax\persistence\persistence-api\1.0\persistence-api-1.0.jar;E:\repository\tk\mybatis\mapper-base\1.1.5\mapper-base-1.1.5.jar;E:\repository\tk\mybatis\mapper-weekend\1.1.5\mapper-weekend-1.1.5.jar;E:\repository\tk\mybatis\mapper-spring\1.1.5\mapper-spring-1.1.5.jar;E:\repository\tk\mybatis\mapper-extra\1.1.5\mapper-extra-1.1.5.jar;E:\repository\tk\mybatis\mapper-spring-boot-autoconfigure\2.1.5\mapper-spring-boot-autoconfigure-2.1.5.jar;E:\repository\com\github\pagehelper\pagehelper-spring-boot-starter\1.2.5\pagehelper-spring-boot-starter-1.2.5.jar;E:\repository\org\mybatis\spring\boot\mybatis-spring-boot-starter\1.3.2\mybatis-spring-boot-starter-1.3.2.jar;E:\repository\org\mybatis\spring\boot\mybatis-spring-boot-autoconfigure\1.3.2\mybatis-spring-boot-autoconfigure-1.3.2.jar;E:\repository\com\github\pagehelper\pagehelper-spring-boot-autoconfigure\1.2.5\pagehelper-spring-boot-autoconfigure-1.2.5.jar;E:\repository\com\github\pagehelper\pagehelper\5.1.4\pagehelper-5.1.4.jar;E:\repository\com\github\jsqlparser\jsqlparser\1.0\jsqlparser-1.0.jar;E:\repository\com\alibaba\druid\1.0.28\druid-1.0.28.jar;C:\Program Files (x86)\Java\jdk1.8.0_152\lib\jconsole.jar;C:\Program Files (x86)\Java\jdk1.8.0_152\lib\tools.jar;E:\repository\org\apache\commons\commons-lang3\3.6\commons-lang3-3.6.jar;E:\repository\commons-io\commons-io\2.5\commons-io-2.5.jar;E:\repository\commons-fileupload\commons-fileupload\1.3.3\commons-fileupload-1.3.3.jar;E:\repository\org\apache\shiro\shiro-core\1.3.2\shiro-core-1.3.2.jar;E:\repository\org\slf4j\slf4j-api\1.7.29\slf4j-api-1.7.29.jar;E:\repository\commons-beanutils\commons-beanutils\1.8.3\commons-beanutils-1.8.3.jar;E:\repository\org\apache\shiro\shiro-spring\1.3.2\shiro-spring-1.3.2.jar;E:\repository\org\apache\shiro\shiro-web\1.3.2\shiro-web-1.3.2.jar;E:\repository\org\apache\shiro\shiro-ehcache\1.3.2\shiro-ehcache-1.3.2.jar;E:\repository\net\sf\ehcache\ehcache-core\2.5.3\ehcache-core-2.5.3.jar;E:\repository\com\github\theborakompanioni\thymeleaf-extras-shiro\2.0.0\thymeleaf-extras-shiro-2.0.0.jar;E:\repository\com\alibaba\fastjson\1.2.58\fastjson-1.2.58.jar;E:\repository\eu\bitwalker\UserAgentUtils\1.19\UserAgentUtils-1.19.jar;E:\repository\org\springframework\spring-context-support\5.1.12.RELEASE\spring-context-support-5.1.12.RELEASE.jar;E:\repository\org\springframework\spring-beans\5.1.12.RELEASE\spring-beans-5.1.12.RELEASE.jar;E:\repository\org\springframework\spring-context\5.1.12.RELEASE\spring-context-5.1.12.RELEASE.jar;E:\repository\org\quartz-scheduler\quartz\2.3.0\quartz-2.3.0.jar;E:\repository\com\mchange\mchange-commons-java\0.2.11\mchange-commons-java-0.2.11.jar;E:\repository\org\apdplat\word\1.3.1\word-1.3.1.jar;E:\repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;E:\repository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;E:\repository\org\apache\lucene\lucene-core\4.10.4\lucene-core-4.10.4.jar;E:\repository\org\apache\lucene\lucene-queryparser\4.10.4\lucene-queryparser-4.10.4.jar;E:\repository\org\apache\lucene\lucene-queries\4.10.4\lucene-queries-4.10.4.jar;E:\repository\org\apache\lucene\lucene-sandbox\4.10.4\lucene-sandbox-4.10.4.jar;E:\repository\org\apache\lucene\lucene-analyzers-common\4.10.4\lucene-analyzers-common-4.10.4.jar;E:\repository\org\apache\lucene\lucene-suggest\4.10.4\lucene-suggest-4.10.4.jar;E:\repository\org\apache\lucene\lucene-misc\4.10.4\lucene-misc-4.10.4.jar;E:\repository\redis\clients\jedis\2.9.3\jedis-2.9.3.jar;E:\repository\com\belerweb\pinyin4j\2.5.0\pinyin4j-2.5.0.jar;E:\repository\org\apache\velocity\velocity\1.7\velocity-1.7.jar;E:\repository\commons-collections\commons-collections\3.2.1\commons-collections-3.2.1.jar;E:\repository\commons-lang\commons-lang\2.4\commons-lang-2.4.jar;E:\repository\org\apache\poi\poi\3.17\poi-3.17.jar;E:\repository\commons-codec\commons-codec\1.11\commons-codec-1.11.jar;E:\repository\org\apache\commons\commons-collections4\4.1\commons-collections4-4.1.jar;E:\repository\org\apache\poi\poi-ooxml\3.17\poi-ooxml-3.17.jar;E:\repository\org\apache\poi\poi-ooxml-schemas\3.17\poi-ooxml-schemas-3.17.jar;E:\repository\org\apache\xmlbeans\xmlbeans\2.6.0\xmlbeans-2.6.0.jar;E:\repository\stax\stax-api\1.0.1\stax-api-1.0.1.jar;E:\repository\com\github\virtuald\curvesapi\1.04\curvesapi-1.04.jar;E:\repository\xerces\xercesImpl\2.11.0\xercesImpl-2.11.0.jar;E:\repository\xml-apis\xml-apis\1.4.01\xml-apis-1.4.01.jar;E:\repository\com\github\penggle\kaptcha\2.3.2\kaptcha-2.3.2.jar;E:\repository\com\jhlabs\filters\2.0.235-1\filters-2.0.235-1.jar;E:\repository\cn\hutool\hutool-all\5.0.6\hutool-all-5.0.6.jar;E:\repository\org\springframework\boot\spring-boot-configuration-processor\2.1.11.RELEASE\spring-boot-configuration-processor-2.1.11.RELEASE.jar;E:\repository\com\aliyun\aliyun-java-sdk-core\3.2.2\aliyun-java-sdk-core-3.2.2.jar;E:\repository\com\aliyun\aliyun-java-vod-upload\2.11\aliyun-java-vod-upload-2.11.jar;E:\repository\com\aliyun\aliyun-java-sdk-vod\2.11.0\aliyun-java-sdk-vod-2.11.0.jar;E:\repository\com\aliyun\oss\aliyun-sdk-oss\3.1.0\aliyun-sdk-oss-3.1.0.jar;E:\repository\org\apache\httpcomponents\httpclient\4.5.10\httpclient-4.5.10.jar;E:\repository\org\apache\httpcomponents\httpcore\4.4.12\httpcore-4.4.12.jar;E:\repository\org\jdom\jdom\1.1\jdom-1.1.jar;E:\repository\com\sun\jersey\jersey-json\1.9\jersey-json-1.9.jar;E:\repository\org\codehaus\jettison\jettison\1.1\jettison-1.1.jar;E:\repository\com\sun\xml\bind\jaxb-impl\2.2.3-1\jaxb-impl-2.2.3-1.jar;E:\repository\javax\xml\bind\jaxb-api\2.3.1\jaxb-api-2.3.1.jar;E:\repository\javax\activation\javax.activation-api\1.2.0\javax.activation-api-1.2.0.jar;E:\repository\org\codehaus\jackson\jackson-core-asl\1.8.3\jackson-core-asl-1.8.3.jar;E:\repository\org\codehaus\jackson\jackson-mapper-asl\1.8.3\jackson-mapper-asl-1.8.3.jar;E:\repository\org\codehaus\jackson\jackson-jaxrs\1.8.3\jackson-jaxrs-1.8.3.jar;E:\repository\org\codehaus\jackson\jackson-xc\1.8.3\jackson-xc-1.8.3.jar;E:\repository\com\sun\jersey\jersey-core\1.9\jersey-core-1.9.jar;E:\repository\com\aliyun\aliyun-java-sdk-ram\3.0.0\aliyun-java-sdk-ram-3.0.0.jar;E:\repository\com\aliyun\aliyun-java-sdk-sts\3.0.0\aliyun-java-sdk-sts-3.0.0.jar;E:\repository\com\aliyun\aliyun-java-sdk-ecs\4.2.0\aliyun-java-sdk-ecs-4.2.0.jar;E:\repository\commons-configuration\commons-configuration\1.10\commons-configuration-1.10.jar;E:\repository\commons-logging\commons-logging\1.1.1\commons-logging-1.1.1.jar;E:\repository\cn\folkcam\netease-yunxin-spring-boot-starter\1.0-SNAPSHOT\netease-yunxin-spring-boot-starter-1.0-SNAPSHOT.jar;E:\repository\net\sf\json-lib\json-lib\2.4\json-lib-2.4-jdk15.jar;E:\repository\net\sf\ezmorph\ezmorph\1.0.6\ezmorph-1.0.6.jar;E:\repository\org\springframework\boot\spring-boot-starter-data-redis\2.0.4.RELEASE\spring-boot-starter-data-redis-2.0.4.RELEASE.jar;E:\repository\org\springframework\data\spring-data-redis\2.1.14.RELEASE\spring-data-redis-2.1.14.RELEASE.jar;E:\repository\org\springframework\data\spring-data-keyvalue\2.1.14.RELEASE\spring-data-keyvalue-2.1.14.RELEASE.jar;E:\repository\org\springframework\data\spring-data-commons\2.1.14.RELEASE\spring-data-commons-2.1.14.RELEASE.jar;E:\repository\org\springframework\spring-tx\5.1.12.RELEASE\spring-tx-5.1.12.RELEASE.jar;E:\repository\org\springframework\spring-oxm\5.1.12.RELEASE\spring-oxm-5.1.12.RELEASE.jar;E:\repository\io\lettuce\lettuce-core\5.1.8.RELEASE\lettuce-core-5.1.8.RELEASE.jar;E:\repository\io\netty\netty-common\4.1.43.Final\netty-common-4.1.43.Final.jar;E:\repository\io\netty\netty-handler\4.1.43.Final\netty-handler-4.1.43.Final.jar;E:\repository\io\netty\netty-buffer\4.1.43.Final\netty-buffer-4.1.43.Final.jar;E:\repository\io\netty\netty-codec\4.1.43.Final\netty-codec-4.1.43.Final.jar;E:\repository\io\netty\netty-transport\4.1.43.Final\netty-transport-4.1.43.Final.jar;E:\repository\io\netty\netty-resolver\4.1.43.Final\netty-resolver-4.1.43.Final.jar;E:\repository\io\projectreactor\reactor-core\3.2.13.RELEASE\reactor-core-3.2.13.RELEASE.jar;E:\repository\org\reactivestreams\reactive-streams\1.0.3\reactive-streams-1.0.3.jar;E:\repository\com\google\code\gson\gson\2.8.6\gson-2.8.6.jar" cn.Demo2
#######第一种状态切换  - 新建 -> 运行 -> 终止################################
没调用start方法,thread1当前状态:NEW
thread1当前状态:RUNNABLE
thread1 执行了
等待两秒,再看thread1当前状态:TERMINATED

############第二种:新建 -> 运行 -> 等待 -> 运行 -> 终止(sleep方式)###########################
没调用start方法,thread2当前状态:NEW
调用start方法,thread2当前状态:RUNNABLE
等待200毫秒,再看thread2当前状态:TIMED_WAITING
thread2当前状态:RUNNABLE
thread2 执行了
等待3秒,再看thread2当前状态:TERMINATED

############第三种:新建 -> 运行 -> 阻塞 -> 运行 -> 终止###########################
没调用start方法,thread3当前状态:NEW
调用start方法,thread3当前状态:RUNNABLE
等待200毫秒,再看thread3当前状态:BLOCKED
thread3当前状态:RUNNABLE
thread3 执行了
等待3秒,让thread3抢到锁,再看thread3当前状态:TERMINATED

Process finished with exit code 0
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值