先看一下比较简单的,sleep() join()的用法。
package thread1;
public class TreadTest implements Runnable {
public static int a = 0;
public void run() {
for (int i = 0; i < 100; i++) {
try {
Thread.sleep(2000);
a += 1;
System.out.println("thread1" + i);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
这个类很简单,跑起来以后每个循环延迟2000,注意一点就可以了,Thread.sleep这个方法的延迟,是对于当前线程的延迟,而不是所有线程都去睡了。
第二个是主类
package thread1;
/**
* @author Administrator
* join方法的测试
*/
public class Test {
public static void main(String[] args) {
TreadTest t = new TreadTest();
Thread th = new Thread(t);
th.start();
try {
th.join(20000); //运行TH线程20000毫秒后 执行下面
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
//
//try {
// //th.join(0);
//} catch (InterruptedException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
//}
for (int i = 0; i < 100; i++) {
try {
Thread.sleep(500);
System.out.println("main" + i);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println(t.a);
}
}
大家可以运行起来看效果,底下的这个循环就是主线程,通过join这个方法进行对主线程和线程ThreadTest的先后执行,join不带任何参数时,说明要完全执行完当前线程后才允许其他线程运行,join(2000)代表先执行当前线程2000毫秒后允许其他线程。
分享到:
相关推荐
Java程序设计教程教材例程是学习Java编程的重要资源,它由雍俊海教授在第二版的《Java程序设计教程》中提供。这个压缩包包含了教材每一章节中的所有示例代码,旨在帮助读者深入理解Java语言的基本概念、语法结构以及...
在 Java 1.5 及以后版本中,`stop()` 方法已被弃用,应使用更安全的方法如设置共享变量来通知线程结束。 7. **线程状态检查**: - `isAlive()` 方法用来检查线程是否仍然处于活动状态。在主类中,主线程会检查 `...
在学习和使用这个“易语言多线程许可证基本例程”时,可以逐步分析源码,理解每个部分的作用,然后尝试修改和扩展它,以适应不同的应用场景。同时,通过实践,你可以加深对易语言特性和多线程编程的理解,提升编程...
IT大厂如华为等基础面试中经常出现的Java基础笔试题目,使用最基本的线程同步、Notify及wait等实现最基本的生产者消费者例程,适用于Java编程初学者了解多线程、同步块、线程安全、原子操作类等基本原理和用法。
根据给定的文件标题“多线程使用原因以及例程”,本文将围绕多线程的基本概念、使用原因、关键技术和实际应用等方面进行深入探讨。 #### 二、多线程的核心概念 1. **多线程定义**:多线程是指在单个进程中同时运行...
在“java例程100例”中,我们聚焦于Java编程语言,这是一个对初学者极其宝贵的资源。Java是一种广泛使用的面向对象的编程语言,以其跨平台性、安全性及高效性能而闻名。以下是对每个标签及其相关的Java知识点的详细...
以上只是Java编程基础知识的一部分,实际的"Java的一些简单的例程"可能涵盖了更多的概念,如异常处理、接口、枚举、多线程、泛型等。这些例程将帮助初学者通过实践理解Java的语法和编程理念,逐步掌握编程技能。通过...
JAVA 网络编程服务器端例程,一个测试socket通信的比较好的例程
3. **线程通信**:例如,使用Java的`BlockingQueue`进行线程间的数据传递,或者Python的`queue`模块,实现线程间的协作。 4. **线程优先级**:在某些系统中,线程有优先级概念,高优先级线程会先于低优先级线程执行...
在本例程中,我们将深入探讨如何在MFC应用中实现多线程。 首先,了解线程的基本概念是必要的。线程是程序执行的单一顺序控制流,是操作系统分配CPU时间的基本单元。在一个多线程程序中,多个线程可以共享同一块内存...
在本例程中,我们将深入探讨“易语言多线程的运用”,这是在多核处理器环境下提高程序执行效率的重要技术。 首先,我们要理解什么是线程。线程是操作系统分配CPU时间的基本单元,一个进程可以包含一个或多个线程。...
6. **多线程**: Java内置对多线程的支持,通过Thread类和Runnable接口可以创建并管理多个执行线程。理解和掌握同步机制(如synchronized关键字、Lock接口)对于编写并发程序至关重要。 7. **异常和错误**: 了解Java...
每个例程可能演示了不同的线程创建方法。 2. **线程同步**:在多线程环境中,线程间的同步至关重要,以避免数据竞争和死锁等问题。VC提供了多种同步机制,如`Mutex`(互斥量)、`CriticalSection`(临界区)、`...
"源码使用说明.txt"文件则是提供如何理解和使用这个例程的指南,它可能包含了如何在自己的项目中导入和使用这些多线程及许可证管理代码的步骤,以及可能遇到的问题和解决方案。阅读这份说明对于初学者来说至关重要,...
"program5.java"和"program6.java"可能深入到面向对象编程(OOP)的概念,包括类的定义、对象的创建、属性(fields)和方法(methods)的使用,以及封装、继承和多态等原则。 6. **实例化与方法调用** 在这些程序...
同时执行多线程例程同时执行多线程例程同时执行多线程例程
10. **调试技巧**:可能包括了一些调试多线程程序的方法,如使用Visual Studio的调试器查看和跟踪线程状态。 通过学习这个文档和源码“MultiThread5”,开发者可以加深对VC++多线程编程的理解,提高开发多线程应用...
文中可能涉及了线程间的同步方法,如使用`WaitForSingleObject`和`WaitForMultipleObjects`等待线程完成,或者使用`Mutex`实现互斥访问。此外,`CreateMutex`和`ReleaseMutex`可用于创建和释放互斥体,防止多个线程...
- 线程控制:包括join()(等待线程执行完毕)、interrupt()(中断线程)和yield()(让出CPU执行权)等方法。 4. **线程同步与通信**: - 竞态条件:当多个线程访问和修改同一数据时,可能会出现不一致的结果。...
在这个"易语言多线程ADSL拨号演示例程"中,我们可以深入学习如何利用易语言实现多线程技术以及ADSL拨号功能。 多线程是并发编程中的一个重要概念,它允许程序同时执行多个任务,提高了程序的执行效率。在易语言中,...