为了账号安全,请及时绑定邮箱和手机立即绑定

细说多线程之Thread VS Runnable

难度初级
时长 1小时 0分
学习人数
综合评分9.63
171人评价 查看评价
9.8 内容实用
9.6 简洁易懂
9.5 逻辑清晰

已采纳回答 / 知道比不知道好
java的多线程编程自己觉得是一种模拟多线程。所有的线程函数都在一个框架下工作,或者说被框架控制。sleep函数本身就是一个计数器,你可以想象成里面添加了一个while循环。在该循环执行时,当前线程休眠,其他线程运行。当循环结束时,当前线程被唤醒,一旦拥有CPU资源便开始运行。

已采纳回答 / 我爱豆花汤
是因为线程的执行顺序啊,每次执行都不一定是一样的。至于剩余票的问题,老师有回答啊~o(^_^)o

已采纳回答 / 慕侠6876944
 窗口3卖了一张票,剩余票数:2 为什么还能声誉三张票  不是runable接口嘛

已采纳回答 / 地铁时间ee
public class SoldTicketThread implements Runnable { private int ticket = 5; private synchronized void sale() { if (ticket > 0) { System.out.println(Thread.currentThread().getName() + "卖出了一张票,剩余" + (--ticket) + "张票"); try { Thread.sleep(100)...

已采纳回答 / superboo
是这样的 因为runnable处理同一资源也无法保证 这个资源 从加载 更改 到赋值的原子性

已采纳回答 / 简简单单ap
os.write(("\r\nword"+count).getBytes());你应该这么写啊,你少写了一对括号

已采纳回答 / 内涵Naruto
MyThread mt=new MyThread(); Thread td1=new Thread(mt,"售票口1"); Thread td2=new Thread(mt,"售票口2"); Thread td3=new Thread(mt,"售票口3");说的是火车票,但是要通过实现Runnable接口,这样才能真正意义的使其成为同一资源,如果是继承Thread类,创建三次,就不是同一资源了,变成了15张票,就不算是同一资源了,是各自独立的资源,我是这样理解的

已采纳回答 / 鸿泽
可能是因为并非窗口1首先获得CPU时间片,而是其他线程。首先是窗口2 ,执行到count--之后,sysout时就被阻塞了。注意此时count=4。然后是窗口1 ,执行了整个run方法 ,此时count=3。然后是窗口3 ,执行了整个run方法 ,此时count=2。此时窗口2恢复,继count--之后执行,输出count=3。然后是窗口3 ,执行了整个run方法 ,此时count=0。当然这种并不一定是这样,因为现在的多核CPU线程是可以同时执行的。

已采纳回答 / ddyblack
查看老师的个人信息就可以看了啊

已采纳回答 / 天启之魂
...........建议你再好好学习一下...这里主线程是指的main函数.......sc只是个对象....只是main线程中的一个代码而已...这里能看到的就两个线程 1个main线程 是主线程   一个是thread 线程. 设置成了守护线程...

已采纳回答 / 天启之魂
稍微说下 免得你误解 不是每个方法都有一个线程 而是 main函数是程序的入口,你运行java程序的时候就默认开启的是main线程 然后你有额外开启了一个thread0的线程 所以有两个线程罗!

已采纳回答 / passionfoure
执行线程sleep方法是依然占着cpu的,操作系统认为该当前线程正在运行,不会让出系统资源。执行wait方法是让线程到等待池等待,让出一系列的系统资源,其他线程可以根据调度占用cpu

讲师回答 / MartonZhang
这个。。。。你要补下操作系统的知识了,很基础的东西
首页上一页12下一页尾页
课程须知
学习本课程前,你需要熟练掌握Java的基础语法,熟悉Java中创建线程的两种方式,熟悉Java多线程中常用的一些方法。
老师告诉你能学到什么?
1、多线程创建方式的比较和选择 2、线程的生命周期、守护线程

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消