在多线程编程中,为什么要在run函数中加入sleep(100),在此处调用sleep函数有什么用? 叫线程先睡上0.1秒,把CPU让给其他人,0.1秒后再醒来 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 具体说来,java是垮平台的,有的平台的cpu线程处理方式是独占式,有些是时间片式,这些理论可以查阅操作系统原理相关,问题就出在这,为了使程序在各个平台间的运行一样,就有必要使用相关方法,使具有较高优先级的线程休眠,答到给其他线程运行的目的!否则在独占方式下,线程的执行独占式,只有当一个执行完,其他线程才有执行的机会! 在多线裎中因为涉及到同步,以及资源共享的访问是的互斥等原因。需要将线程调入睡眠,挂起等状态。相关的内容看看操作系统方面的书sleep(100)就是将线裎进入睡眠状态,给别的线程访问资源 我好像记得在c中,多线程不用调用sleep吧? 不用sleep理论上是没有问题的,但是你实际测试一下,有时候有一些线程得到的执行机会很少或没有 《thinking in java》正看到线程的部分,也有了同样的疑问谢谢大家了收藏 其实用sleep只是为了能够比较明显的看到线程运行的并发性,你不写这句话是没有问题的但是由于线程执行得太快了,所以一个线程可能会出现连续打印信息很多次才轮到别的线程执行得情况,这样不方便看到效果,所以才增加sleep得方法进去 to ChDw(米) : 好像不对吧,在多线程编程中,不要sleep好像用户交互界面就反映得很慢. 楼上的,用户交互界面反应慢那是因为你的那个方法不是thread safe的,大家都要排队……swing的很多方法都是这样。至于提到sleep乐就能让线程们合理分配时间,这个观点我也不赞同,我自己就碰上乐这样的问题,我已经做了sleep可是仍然这个线程被优先分配时间乐--我并没有修改线程优先级别 sleep()是和优先级配合的.当sleep结束,高优先级的线程还是会得到cpu的使用权,一样用wait ,notify ,notifyAll来进行各线程间的同步! 将CPU时间让出来,让其它线程运行。 我觉得大家回答得还是不尽人意,我想问一下在run中加入sleep(100),那么此run方法是否就会慢0.1秒? 其实最好是使用yield()方法,效果和sleep()差不多,但不需要设置时间。Thread的永真循环消耗CPU资源一直是程序员的一大心病,如果在程序中不将线程让出来,而程序一直在跑的话,CPU使用率可能达到97%以上。所以在永真循环中,建议大家使用阻塞的方法。如Selector类的select()就是阻塞的,在注册的事件发生后,才返回结果,也可以用select(int i)方法,可以设置超时时间,如果在循环中还有其他事情要做,可以把时间间隔写在参数里,单位是毫秒。 请教:UDP一个常识性问题 一个关于PACKAGE位置的问题 程序执行的时间 简单算法求助 请教JDBC取数据问题,在线等!!! 怎么调用自己定义的class ,小菜 【求助】关于时间转换的问题 JScrollPane的问题。在线等待 用itext生成pdf文件,请问如何解决中文问题。 请教一个问题 一个简单的问题 毕业设计急需,散分
需要将线程调入睡眠,挂起等状态。相关的内容看看操作系统方面的书
sleep(100)就是将线裎进入睡眠状态,给别的线程访问资源
谢谢大家了收藏
但是由于线程执行得太快了,所以一个线程可能会出现连续打印信息很多次才轮到
别的线程执行得情况,这样不方便看到效果,所以才增加sleep得方法进去
好像不对吧,在多线程编程中,不要sleep好像用户交互界面就反映得很慢.
一样用wait ,notify ,notifyAll来进行各线程间的同步!