线程休眠之间的区别?

问题描述

publicvoidrun(){while(true){try{longstart=System.currentTimeMillis();repaint();longend=System.currentTimeMillis();if(end-start<SLEEP_TIME){Thread.sleep(SLEEP_TIME-(end-start));}}catch(Exceptione){}}}publicvoidrun(){while(true){try{Thread.currentThread().sleep(100);}catch(Exceptione){}}}这两种方法之间的区别?

解决方案

解决方案二:
在end和Start时间区内执行repaint()方法,而Thread.Sleep(200)可以什么都不做只是等待。
解决方案三:
不知道楼主想问的具体是什么问题我看代码只知道1.当java重绘的很快的话,就不用SLEEP2.就是单纯一个SLEEP方法啊,不干怎么活repaint()方法用于重绘组件,该方法有下面四种形式:1。publicvoidrepaint()2。publicvoidrepaint(longtm)//指定调用update方法之前等待的最大毫秒数tm3。publicvoidrepaint(intx,inty,intwidth,intheight)//重绘组件的指定矩形区域4。publicvoidrepaint(lingtm,intx,inty,intwidth,intheight)repaint方法不总是马上执行,Java虽然会尽可能快的执行repaint,当Applet运行在较慢的平台上或计算机较忙时,应该考虑使用第2或4种repaint方法,指定在多长时间内必须执行repaint,否则就放弃。
解决方案四:
ry{Thread.currentThread().sleep(100);}这个不是休眠只是等待100毫秒而已
解决方案五:
感觉是没什么变化的一半都用第二种
解决方案六:
都是休眠,几乎没什么区别。第一种:用于设置每秒固定刷新的帧数,保证刷新频度。核心在于“if(end-start<SLEEP_TIME)”这个判断是关键。第二种:每次任务执行完后都固定停留所设定的时间数。优点在于简单,缺点在于如果每次任务计算量较多耗时长,再加上停留时间,可以会导致画面不连贯。使用第一种方法可避免这个缺点。
解决方案七:
都是休眠,几乎没什么区别。第一种:用于设置每秒固定刷新的帧数,保证刷新频度。核心在于“if(end-start<SLEEP_TIME)”这个判断是关键。第二种:每次任务执行完后都固定停留所设定的时间数。优点在于简单,缺点在于如果每次任务计算量较多耗时长,再加上停留时间,可以会导致画面不连贯。使用第一种方法可尽量避免这个缺点。
解决方案八:
通俗点就是1,等图像画完成后再刷新一下屏幕2,不管是图像有没有画完,都会自动的100毫秒刷新一下屏幕

时间: 2024-09-20 00:58:20

线程休眠之间的区别?的相关文章

java中线程同步,线程让步,线程休眠的区别和联系是什么

问题描述 java中线程同步,线程让步,线程休眠的区别和联系是什么 java中线程同步,线程让步,线程休眠的区别和联系是什么 线程的本质还是一个运行中的类, 解决方案 线程同步:是保证多线程安全访问竞争资源的一种手段,java中常用的是加锁机制即synchronized同步代码块实现的. 线程让步的方法是yield(),休眠方法是sleep().sleep()方法和yield()方法都是Thread类的静态方法,都会使当前处于运行状态的线程放弃CPU,把运行机会让给别的线程. 两者的区别在于:s

c#-二个线程之间的区别,C#

问题描述 二个线程之间的区别,C# string ticket_list = "1,2,3,11,12"; string[] sArray = ticket_list.Split(','); if (sArray.Length > 0) { foreach (var i in sArray) { task = new Task(() => { Task a = Task.Run(() => { MyMethod(int.Parse(i)); }); }); } tas

Linux中线程和进程的区别

Linux中线程和进程的区别 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,它是系统进行资源分配和调度的一个独立单位.例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格.内存空间.磁盘空间.I/O设备等,然后该进程被放入到进程的就绪队列,进程调度程序选中它,为它分配CPU及其他相关资源,该进程就被运行起来. 线程是进程的一个实体,是CPU调度和分配的基本单位,线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器.一组寄存器和栈),但

关于信号量与线程互斥锁的区别与实现

  http://dev.firnow.com/course/6_system/linux/Linuxjs/20090901/173322.html 之前一直没有怎么关注过这个问题,前些日子在面试一家公司的时候,面试官提到了pthread_cond_wait/pthread_cond_signal的实现,当时答的不是很好,回来就查了nptl的代码.前天,水木上又有人问到了信号量和互斥锁的问题,我想还是对它们的区别与实现总结一下. 首先了解一些信号量和线程互斥锁的语义上的区别: >>>&g

线程同步机制的区别与比较及进程通信方法

http://hi.baidu.com/wobash/blog/item/4c1de9464899c40f6a63e500.html 线程同步机制的区别与比较及进程通信方法 2008-08-29 14:07 有关多线程的一些技术问题: 1.   何时使用多线程? 2.   线程如何同步? 3.   线程之间如何通讯? 4.   进程之间如何通讯? 先来回答第一个问题,线程实际主要应用于四个主要领域,当然各个领域之间不是绝对孤立的,他们有可能是重叠的,但是每个程序应该都可以归于某个领域: 1.  

详解Java中的线程让步yield()与线程休眠sleep()方法_java

线程让步: yield()yield()的作用是让步.它能让当前线程由"运行状态"进入到"就绪状态",从而让其它具有相同优先级的等待线程获取执行权:但是,并不能保证在当前线程调用yield()之后,其它具有相同优先级的线程就一定能获得执行权:也有可能是当前线程又进入到"运行状态"继续运行!示例: class ThreadA extends Thread{ public ThreadA(String name){ super(name); } pu

windows-linux与Windows之间的区别

问题描述 linux与Windows之间的区别 linux与Windows的区别在哪?可以全面的说说吗?最好是列举出来,谢谢! 解决方案 Linux确切地说,是内核,所谓内核,就是操作系统中最最基本的功能,比如操作硬件,调度进程.线程.文件管理.同步等等. 而构成完整操作系统的Linux,则是各自独立的厂商根据需要搭配不同的上层软件得到的完整系统,叫做Linux发行版. 所以不要和Windows比,就是Linux内部,都千差万别.比如桌面的Ubuntu,手机上的Android,你根本都找不到相似

Java servlet、filter、listener、interceptor之间的区别和联系_java

servlet.filter.listener.interceptor之间的区别和联系 一.概念 1.servlet:servlet是一种运行服务器端的java应用程序,具有独立于平台和协议的特性,并且可以动态的生成web页面,它工作在客户端请求与服务器响应的中间层. 2.filter:filter是一个可以复用的代码片段,可以用来转换HTTP请求.响应和头信息.Filter不像Servlet,它不能产生一个请求或者响应,它只是修改对某一资源的请求,或者修改从某一的响应. 3.listener:

Spark源码分析:多种部署方式之间的区别与联系(1)

<http://www.aliyun.com/zixun/aggregation/13383.html">Spark源码分析:多种部署方式之间的区别与联系(1)> <Spark源码分析:多种部署方式之间的区别与联系(2)> 从官方的文档我们可以知道,Spark的部署方式有很多种:local.Standalone.Mesos.YARN-..不同部署方式的后台处理进程是不一样的,但是如果我们从代码的角度来看,其实流程都差不多. 从代码中,我们可以得知其实Spark的部署