问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

主线程显示,休眠3秒,次线程显示,休眠1秒

发布网友 发布时间:2023-01-17 05:21

我来回答

1个回答

热心网友 时间:2023-09-09 04:24

一样的题目?是线程互斥吧。这是java版本的,昨天我才回答过。
package com.cao.test;

public class Test3 {

public static void main(String args[]) throws Exception {
Thread t1 = new Thread(new Runnable() {
public void run() {
try {
long s3 = System.currentTimeMillis();
System.out.println("-----分线程占用中----------");
Singleton.getSigleton().getStr("F");
System.out.println("-----分线程占用结束----------");
long s4 = System.currentTimeMillis();
System.out.println("分线程占用时间:" + (s4 - s3));
} catch (Exception e) {
e.printStackTrace();
}
}
});
t1.start();
long s = System.currentTimeMillis();
System.out.println("-----主线程占用中----------");
Singleton.getSigleton().getStr("M");
System.out.println("-----主线程占用结束----------");
long s2 = System.currentTimeMillis();
System.out.println("主线程占用时间:" + (s2 - s));

}
}

class Singleton {
private static Singleton s;
public String str = "你好";

public String getStr(String tName) throws Exception {
synchronized (Singleton.class) {
System.out.println(tName + "进入");
Thread.sleep(1000);
System.out.println(tName + "结束");
}
return str;
}

private Singleton() {
System.out.println("A Singleton Model example");
}

public static Singleton getSigleton() {
if (s == null)
s = new Singleton();
return s;
}
}

运行结果。
-
-----主线程占用中----------
-----分线程占用中----------
A Singleton Model example
A Singleton Model example
M进入
M结束
-----主线程占用结束----------
F进入
主线程占用时间:1002
F结束
-----分线程占用结束----------
分线程占用时间:2006

解析:M为主线程,F为分线程,str为资源,不论M线程还是F线程,进入方法getStr当中都会休眠1000毫秒,使用synchronized 将方法锁住,有且仅有一个线程可以操作getStr方法,此时不论哪个线程先进入,那么都会在方法中等待1秒后在出来,于是M线程进入,休眠一秒。而F进程在等待M线程运行完毕,等待时间1秒,然后进入getStr方法休眠1秒,于是M线程有1秒休眠,F线程等待加休眠时间一共2秒
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
司法矫正期间 手机业务社区司法矫正标准包 不小心退定了会有什么后果... x面容可以修吗 急!!!我在望京想办张北京农商银行卡,不知道银行在哪,有知道的吗?怎么走... 什么是干式油底壳润滑系统? 建设银行的龙卡全球至尊信用卡额度一般是多少呀? 万和燃气热水器传感器用多久 红警3升级补丁 红警3下的补丁覆盖到安装目录了,除了换了张图.怎么还是老样子_百度知 ... 问一下,红警3,原版,从1.00到1.12所有的平衡性修改~ 谢谢 i9300开机显示此LockScreen未授权是什么情况 如何把《爱奇艺视频》上传到快手? 怎么查自己微信的违规记录,注意是自己的微信不是微信公众号 win7系统无法访问工作组计算机怎么办 华为畅享7和红米4哪个好用 21天减肥法第三阶段能吃全麦馒头吗 防毒面具是根据什么动物的脸制作的 12v12ah储能铅酸电池一箱装几个 怎么在游戏里存档 怎么吃火鸡面 告诉我一下咽炎喉炎简便自疗办法吧 装修茶叶店30平方的店面, 要多少钱 李白中秋赏月诗句 上海通符科技有限公司39元苹果手机真实吗 海川39块手机真的吗 喜拆拆39手机是真的吗 39买苹果手机为何是开盒价 芒果39元的手机是真的吗 数码风暴39元苹果手机能用吗 开盒价39元购手机真的吗? 包青天有哪些故事 我的笔记本电脑无法进入睡眠,按下睡眠键会睡眠1秒然后自己又开始运行起来了,不知道是怎么回事,急急急急 你好,学校发的建设银行的资助卡取款密码被锁定了怎么办?可以解锁吗? 建设银行,中职学生资助卡密码忘记了怎么办,挂失不满十六岁挂失不了。 建设银行中职学生资助卡默认密码 中国建设银行普通高中学生资助卡初始密码 扬子空调制热出现蓝雪花怎么回事 扬子空调制热关掉电加热为啥会降温呢 吉娃娃怎么繁殖方法及饲养技巧 杂种吉娃娃狗要如何照顾?(快该换肠了) 博美犬和吉娃娃串两个月左右怎么饲养 论语子罕篇原文及翻译 如何打开mac的hosts文件 请问苹果的Mac系统里,Hosts文件在哪? 我的跟密码是对的,为什么登录不上显示和密码不正确 守正直而佩仁义翻译什么意思 取之以仁义,守之以仁义者,周也。取之以诈力,守之以诈力者,秦也。以秦之所以取取之,以周之所以守守之 仁义刘备文言文 10分钟发高烧的窍门? 工商银行学生资助卡怎么办 你都听说过蒲公英有哪些常人不知道的妙用呢?