java线程

[复制链接]
查看11 | 回复4 | 2011-10-24 10:34:16 | 显示全部楼层 |阅读模式
看似run方法每次运行需要1秒,实际上光sleep就需要1秒,再加上循环,输出。可能一次运行需要1.01秒。这样的话,10秒后,run方法仍然在sleep,或许10.1秒的时候才会醒来。既然run方法在sleep,而mian方法可能在10.01秒时就醒来了,那么就不存在抢的问题了main方法可能总是先运行。特别提醒:多线程中各个线程运行时间是不确定的,每次运行可能出现不同结果。 我试验了一下:main方法如果改为sleep 10008ms的话,就会有11次输出了,而改为10007ms的话,可能就只有10次输出。...
回复

使用道具 举报

千问 | 2011-10-24 10:34:16 | 显示全部楼层
main方法是主线程,加上你自己定义的线程,就是说这有2个线程,它们是同等地位的,操作在分配资源的时候是同等对待的,所以你要想达到预期目标,你要在程序中实现好了,不能让操作系统给你分配。。。。不知道我讲的是不是很清楚,希望对你有帮助。。。。...
回复

使用道具 举报

千问 | 2011-10-24 10:34:16 | 显示全部楼层
刚睡醒的线程优先级较高,再加上run方法中比main方法中执行的语句多...
回复

使用道具 举报

千问 | 2011-10-24 10:34:16 | 显示全部楼层
线程之间,不要期望操作系统怎么作,这是不靠谱的。这些都应该是程序员自己控制的...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行