Java中线程休眠编程实例_java

import java.awt.*;
import java.util.*; 

import javax.swing.*;
public class SleepMethodTest extends JFrame {
  /**
   *
   */
  private static final long serialVersionUID = 1L;
  private Thread t;
  // 定义颜色数组
  private static Color[] color = { Color.BLACK, Color.BLUE, Color.CYAN,
      Color.GREEN, Color.ORANGE, Color.YELLOW, Color.RED,
      Color.PINK, Color.LIGHT_GRAY };
  private static final Random rand = new Random();// 创建随机对象 

  private static Color getC() {// 获取随机颜色值的方法
    return color[rand.nextInt(color.length)];
  } 

  public SleepMethodTest() {
    t = new Thread(new Runnable() {// 创建匿名线程对象
      int x = 30;// 定义初始坐标
      int y = 50; 

      public void run() {// 覆盖线程接口方法
        while (true) {// 无限循环
          try {
            Thread.sleep(100);// 线程休眠0.1秒
          } catch (InterruptedException e) {
            e.printStackTrace();
          }
          // 获取组件绘图上下文对象
          Graphics graphics = getGraphics();
          graphics.setColor(getC());// 设置绘图颜色
          // 绘制直线并递增垂直坐标
          graphics.drawLine(x, y, 100, y++);
          if (y >= 80) {
            y = 50;
          }
        }
      }
    });
    t.start();// 启动线程
  } 

  public static void main(String[] args) {
    init(new SleepMethodTest(), 100, 100);
  }
  // 初始化程序界面的方法
  public static void init(JFrame frame, int width, int height) {
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(width, height);
    frame.setVisible(true);
  }
} 

JAVA中的休眠是sleep()方法,本例子中定义了getC()方法,该方法用于随机产生Color类型的对象,并且在产生线程的匿名内部类中使用getGraphics()方法获取Graphics对象,使用该对象调用setColor()方法为图形设置颜色;调用drawline()方法绘制一条线段,同时线段会根据纵坐标的变化自动调整。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索java
, 线程
休眠
java多线程编程实例、java多线程的编程实例、java线程池编程实例、c 多线程编程实例、qt多线程编程实例,以便于您获取更多的相关知识。

时间: 2024-09-13 01:59:37

Java中线程休眠编程实例_java的相关文章

以实例简介Java中线程池的工作特点_java

什么原因使我们不得不使用线程池? 个人认为主要原因是:短时间内需要处理的任务数量很多 使用线程池的好处: 1.减少在创建和销毁线程上所花的时间以及系统资源的开销 2.如不使用线程池,有可能造成系统创建大量线程而导致消耗完系统内存 以下是Java自带的几种线程池: 1.newFixedThreadPool  创建一个指定工作线程数量的线程池. 每当提交一个任务就创建一个工作线程,如果工作线程数量达到线程池初始的最大数,则将提交的任务存入到池队列中. 2.newCachedThreadPool 创建

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

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

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

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

Java中线程用法总结_java

本文实例总结了Java中线程用法.分享给大家供大家参考.具体分析如下: 1.线程是基本调度单元.共享进程的资源,如内存和文件句柄.但有自己的pc(程序计数器),stack(线程栈)及本地变量 2.线程的优势: a) 充分利用多处理器 b) 可以简化模型.特定任务给特定线程.如servlets及rmi等框架. c) 对异步事件的简单处理.如socket,nio使用更复杂.而现在的操作系统支持更大数量的线程. d) 界面的更佳响应 3.内部锁:synchronized块.互斥.可重入(reentra

Java线程调度之线程休眠用法分析_java

本文实例分析了Java线程调度之线程休眠用法.分享给大家供大家参考.具体分析如下: Java线程调度是Java多线程的核心,只有良好的调度,才能充分发挥系统的性能,提高程序的执行效率.   这里要明确的一点,不管程序员怎么编写调度,只能最大限度的影响线程执行的次序,而不能做到精准控制.   线程休眠的目的是使线程让出CPU的最简单的做法之一,线程休眠时候,会将CPU资源交给其他线程,以便能轮换执行,当休眠一定时间后,线程会苏醒,进入准备状态等待执行.   线程休眠的方法是Thread.sleep

java中线程的执行问题

问题描述 java中线程的执行问题 以上两张图片是<JAVA多线程编程核心技术>截图,以下是我的测试代码: 求大神指教这是为什么要线程执行完之后才能输出run end 解决方案 你应该调用Mythread的start()方法,而不是run()方法. myThread.start(); 你的程序调用了run()还是在主线程中执行,并没有新建一个线程来执行的. 关于线程的详细你可以多去阅读相关资料. 解决方案二: java 中线程执行顺序控制java 中线程执行顺序控制java 中线程执行顺序控制

Java中实现文件拷实例

Java中实现文件拷实例 import java.io.*; class copy_file { public static void copyfile(String path1,String path2) throws IOException //使用FileInputStream和FileOutStream { FileInputStream fi=new FileInputStream(path1); FileOutputStream fo=new FileOutputStream(pat

service-Service中线程的唯一实例

问题描述 Service中线程的唯一实例 我在service中初始化一个新的Thread.但是当我重启service时,新的被创建了,同时系统也崩溃了,因为我使用了照相机功能.如何让线程中只有一个实例呢?当关闭在线程中创建的service时.线程也同时被关闭吗? 解决方案 你应该使用一个lock或者一个静态变量: private static boolean isThreadRunning; 在你的service里写入以下方法: if(isThreadRunning) return;Thread

java中的正则操作方法总结_java

正则表达式在处理字符串的效率上是相当高的 关于正则表达式的使用,更多的是自己的经验,有兴趣可以参阅相关书籍 这里主要写一下java中的正则操作方法 实例1:匹配 复制代码 代码如下: import java.util.Scanner; class Demo {    public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        //获取输入        System.out