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()方法绘制一条线段,同时线段会根据纵坐标的变化自动调整。

(0)

相关推荐

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

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

  • Java线程休眠_动力节点Java学院整理

    sleep()介绍 sleep() 定义在Thread.java中. sleep() 的作用是让当前线程休眠,即当前线程会从"运行状态"进入到"休眠(阻塞)状态".sleep()会指定休眠时间,线程休眠的时间会大于/等于该休眠时间:在线程重新被唤醒时,它会由"阻塞状态"变成"就绪状态",从而等待cpu的调度执行. sleep()示例 下面通过一个简单示例演示sleep()的用法. // SleepTest.java的源码 cl

  • java基本教程之线程休眠 java多线程教程

    本章涉及到的内容包括:1. sleep()介绍2. sleep()示例3. sleep() 与 wait()的比较 1. sleep()介绍sleep() 定义在Thread.java中.sleep() 的作用是让当前线程休眠,即当前线程会从"运行状态"进入到"休眠(阻塞)状态".sleep()会指定休眠时间,线程休眠的时间会大于/等于该休眠时间:在线程重新被唤醒时,它会由"阻塞状态"变成"就绪状态",从而等待cpu的调度执行

  • Java并发编程示例(五):线程休眠与恢复

    有时,我们需要在指定的时间点中断正在执行的线程.比如,每分钟检查一次传感器状态的线程,其余时间,线程不需要做任何事情.在此期间,线程不需要使用计算机的任何资源.过了这段时间之后,并且当Java虚拟机调度了该线程,则该线程继续执行.为此,你可以使用Thread类的sleeep()方法.该方法以休眠的方式来推迟线程的执行,而且整数类型的参数则指明休眠的毫秒数.当调用sleep()方法,休眠时间结束后,Java虚拟机分配给线程CPU运行时间,线程就会继续执行. 另一种是用sleep()方法的方式是通过

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

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

  • 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,

  • Java中线程的基本方法使用技巧

    java中线程的基本方法的熟练使用是精通多线程编程的必经之路,线程相关的基本方法有wait,notify,notifyAll,sleep,join,yield等,本文浅要的介绍一下它们的使用方式. 线程的状态图 java将操作系统中的就绪和运行两种状态统称为可运行状态,java中线程的状态可以认为有以上六种. wait 调用该方法的线程进入WAITING状态,只有等待另外线程的通知或被中断才会返回,需要注意的是调用wait()方法后,会释放对象的锁. 因此,wait方法一般用在同步方法或同步代码

  • Java中的函数式编程

    目录 1.Lambda 2.函数接口 2.1 函数描述符 3.Java函数接口 3.1 Predicate 3.2 Consumer 3.3 Function 3.4 Supplier 3.5 Primitive Specializations 4.类型检查 4.1 Capturing Lambda 5.方法引用 5.1 构造函数引用 5.2 组合Lambda 5.3 Comparators 5.4 Predicates 5.5 Functions 6.总结 函数式编程是一种编程范式,其中程序是

  • Java中线程的等待与唤醒_动力节点Java学院整理

    wait(), notify(), notifyAll()等方法介绍 在Object.java中,定义了wait(), notify()和notifyAll()等接口.wait()的作用是让当前线程进入等待状态,同时,wait()也会让当前线程释放它所持有的锁.而notify()和notifyAll()的作用,则是唤醒当前对象上的等待线程:notify()是唤醒单个线程,而notifyAll()是唤醒所有的线程. Object类中关于等待/唤醒的API详细信息如下: notify()      

  • Java中线程用法总结

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

  • java 中线程等待与通知的实现

    java 中线程等待与通知的实现 前言: 关于等待/通知,要记住的关键点是: 必须从同步环境内调用wait().notify().notifyAll()方法.线程不能调用对象上等待或通知的方法,除非它拥有那个对象的锁. wait().notify().notifyAll()都是Object的实例方法.与每个对象具有锁一样,每个对象可以有一个线程列表,他们等待来自该信号(通知).线程通过执行对象上的wait()方法获得这个等待列表.从那时候起,它不再执行任何其他指令,直到调用对象的notify()

  • java中的 toString()方法实例代码

    前言: toString()方法 相信大家都用到过,一般用于以字符串的形式返回对象的相关数据. 最近项目中需要对一个ArrayList<ArrayList<Integer>> datas  形式的集合处理. 处理要求把集合数据转换成字符串形式,格式为 :子集合1数据+"#"+子集合2数据+"#"+....+子集合n数据. 举例: 集合数据 :[[1,2,3],[2,3,5]]  要求转成为 "[1,2,3]#[2,3,5]"

  • java 中死锁问题的实例详解

    java 中死锁问题的实例详解 先看代码在做解释 public class DeadLock implements Runnable{ String a; String b; boolean flag; public DeadLock(String a,String b,boolean flag){ this.a=a; this.b=b; this.flag=flag; } public void run(){ if(flag){ // while(true){ synchronized(a){

  • Java 中synchronize函数的实例详解

    Java 中synchronize函数的实例详解 java中的一个类的成员函数若用synchronized来修饰,则对应同一个对象,多个线程像调用这个对象的这个同步函数时必须等到上一个线程调用完才能由下一个线程调用. 那么如果一个类同时有两个成员函数是由synchronized修饰如代码所示,对与同一个对象,是否可以在两个线程运行时,一个调用funcA,同时另一个调用funcB? Mysyn是这样一个类,如果我有两个线程,一个在run方法中先运行funcA再运行funcB,另一个线程在run方法

  • java 中 MD5加密的实例

    java 中 MD5加密的实例 前言: 今天我来学习利用JAVA编程,通过MD5来实现加密,同时实现验证用户登录原理. 主要是 过程: 将原文的byte 文件通过 MD5加密完成 后.再将其转化为我们能看懂的密文(MD5生成的byte数据,我们无法识别) 主要代码如下 package techDemo; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.ut

随机推荐