public class SleepThread extends Thread{
@Override
public void run() {
try {
System.out.println("sleep start");
Thread.sleep(10000);
System.out.println("sleep end");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public class WakeThread extends Thread{
@Override
public void run() {
for(int i=0;i<10;i++){
try {
Thread.sleep(1000);
System.out.println("I am awake");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
public class ThreadTest {
/**
* @param args
*/
public static void main(String[] args) {
Thread t1=new SleepThread();
Thread t2=new WakeThread();
t1.start();
t2.start();
}
}
打印出
sleep start
I am awake
I am awake
I am awake
I am awake
I am awake
I am awake
I am awake
I am awake
I am awake
I am awake
sleep end
最后一个I am awake 和sleep end 几乎无间隔一起出来了。
这说明sleep的时候,可以自己sleep一会,其他线程走一会,自己再接着sleep.
意味着两则可以同时进行。
分享到:
相关推荐
- 压缩包中的"易语言判断多个线程运行结束源码"文件,应包含了一个示例程序,演示了如何创建并管理多个线程,以及如何判断这些线程是否已经结束。具体代码细节可能包括线程创建、线程状态查询、子程序设计等关键...
1. 提高程序的执行效率:多线程编程可以将复杂的任务分解成多个小任务,每个任务都可以由一个独立的线程来执行,从而提高程序的执行效率。 2. 提高程序的响应速度:多线程编程可以让程序能够快速地响应用户的输入和...
总结来说,"2个线程同时运行实例MFC"是一个关于如何在MFC环境中创建和管理多线程的示例,涉及到线程的创建、同步和控制。通过理解这些概念和技巧,开发者可以更好地设计出高效、安全的多线程程序,以满足复杂的应用...
此时线程等待在ObjectMonitor上,直到其他线程调用了同一个对象的notify方法,将等待的线程唤醒。被唤醒的线程状态变为RUNNABLE,但只有在获得了对象锁之后,才能恢复执行。 在JVM中,Java线程状态的保存和管理是...
- **事件(Events)**:通过WaitHandle类的子类(如ManualResetEvent或AutoResetEvent)来同步线程,一个线程等待特定事件发生,另一个线程触发事件。 - **条件变量(Conditional Variables)**:允许线程在满足...
Thread 类提供了一个基本的线程实现,而 Runnable 接口则提供了一个更加灵活的线程实现方式。 在给定的代码中,我们可以看到四个线程 t1、t2、t3 和 t4。每个线程都实现了 Runnable 接口,并 override 了 run 方法...
- 当线程调用一个对象的 `wait()` 方法时,它会释放对象的锁,进入等待状态,直到其他线程调用同一对象的 `notify()` 或 `notifyAll()`。 - `wait()` 会抛出 `InterruptedException`,与 `sleep()` 类似,需要妥善...
在 Java 中,多线程编程时,常见的问题是一个线程抛出 Out Of Memory(OOM)异常是否会影响其他线程的运行。本文将通过实践和分析来解答这个问题,同时探讨主线程和子线程之间的关系。 多线程和 OOM 异常 在 Java ...
标题“易语言判断多线程是否运行结束”所指的,就是在多线程环境下,编写代码来检测一个特定线程是否已经完成了它的执行任务,即线程是否已经终止。这在等待所有线程完成、线程间同步或者资源释放等场景下非常有用。...
在本实验中,我们要求学生编写一个 Java 应用程序,在主线程中再创建 2 个线程,要求线程经历 4 种状态:新建、运行、中断和死亡。学生需要使用 Thread 类中的 start() 方法来启动线程,并使用 run() 方法来实现线程...
synchronized可以修饰方法或代码块,确保同一时间只有一个线程可以执行特定代码。另外,wait()和notify()、notifyAll()方法用于线程间的通信,实现线程的互斥和协作。 四、线程优先级 Java线程有10个优先级,从MIN_...
在Qt框架中,QTimer和QThread是两个重要的组件,用于...总之,将QTimer放入子线程运行是一种优化策略,特别适用于定时执行耗时任务的情况。通过合理使用QThread和QTimer,我们可以构建出高效且响应迅速的Qt应用程序。
本教程将通过一个简单的示例,介绍如何在Delphi中创建并控制指定数量的线程。 首先,我们要了解Delphi中的TThread类,它是VCL(Visual Component Library)框架提供的用于实现线程的基础类。TThread提供了一系列的...
线程的礼让是指一个线程主动让出CPU资源,使其他线程有机会执行。在Java中,可以使用Thread类的yield()方法实现线程的礼让。 线程的合并是指一个线程等待另一个线程执行完毕后再继续执行。在Java中,可以使用Thread...
此外,为了调试和控制线程,我们可以使用`Thread.sleep()`使线程暂停一段时间,或者使用`join()`方法让一个线程等待另一个线程完成。在实际编程中,还需要考虑异常处理,防止线程中断或其他异常情况导致程序崩溃。 ...
标题中的“多线程 小球 运行程序(eclipse工程可导入)”表明这是一个与多线程编程相关的项目,可能是用Java语言实现的,因为Eclipse是Java开发的常用集成开发环境。这个程序可能设计了一个模拟小球运动的场景,通过多...
我只想要进程的某个线程休眠一段时间的,可是用sleep()是将整个进程都休眠的,这个可能达不到,我们想要的效果了。目前我知道有三种方式: 1、usleep 这个是轻量级的,听说能可一实现线程休眠,我个人并不...
在C#中,多线程是程序设计中的一个重要概念,它允许程序同时执行多个操作,从而提高程序的效率和响应性。然而,在某些情况下,我们可能需要终止正在运行的所有线程,这通常发生在应用程序需要关闭或者某个关键错误...
在多线程环境下,如果一个程序或者功能需要防止多个线程同时执行,以避免数据不一致或资源冲突,就需要用到“多线程禁止重复运行”的技术。 在易语言中实现多线程禁止重复运行,通常会涉及到以下几个关键概念和函数...
在C#编程中,多线程是一个重要的概念,它允许应用程序同时执行多个任务,从而提高效率和性能。在处理复杂的任务,比如文件传输或者UI更新时,多线程显得尤为重要。在标题提到的"四个显示线程计算结果的函数"中,这...