`
javacode23
  • 浏览: 29342 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

java经典线程实例

阅读更多
import java.io.*;

//多线程编程
public class MultiThread {
    public static void main(String args[]) {
        System.out.println("我是主线程!");
        // 下面创建线程实例thread1
        ThreadUseExtends thread1 = new ThreadUseExtends();
        // 创建thread2时以实现了Runnable接口的THhreadUseRunnable类实例为参数
        Thread thread2 = new Thread(new ThreadUseRunnable(), "SecondThread");
        thread1.start();// 启动线程thread1使之处于就绪状态
        // thread1.setPriority(6);//设置thread1的优先级为6
        // 优先级将决定cpu空出时,处于就绪状态的线程谁先占领cpu开始运行
        // 优先级范围1到10,MIN_PRIORITY,MAX_PRIORITY,NORM_PAIORITY
        // 新线程继承创建她的父线程优先级,父线程通常有普通优先级即5NORM_PRIORITY
        System.out.println("主线程将挂起7秒!");
        try {
            Thread.sleep(7000);// 主线程挂起7秒
        } catch (InterruptedException e) {
            return;
        }
        System.out.println("又回到了主线程!");
        if (thread1.isAlive()) {
            thread1.stop();// 如果thread1还存在则杀掉他
            System.out.println("thread1休眠过长,主线程杀掉了thread1!");
        } else
            System.out.println("主线程没发现thread1,thread1已醒顺序执行结束了!");
        thread2.start();// 启动thread2
        System.out.println("主线程又将挂起7秒!");
        try {
            Thread.sleep(7000);// 主线程挂起7秒
        } catch (InterruptedException e) {
            return;
        }
        System.out.println("又回到了主线程!");
        if (thread2.isAlive()) {
            thread2.stop();// 如果thread2还存在则杀掉他
            System.out.println("thread2休眠过长,主线程杀掉了thread2!");
        } else
            System.out.println("主线程没发现thread2,thread2已醒顺序执行结束了!");
        System.out.println("程序结束按任意键继续!");
        try {
            System.in.read();
        } catch (IOException e) {
            System.out.println(e.toString());
        }

    }// main
}// MultiThread

class ThreadUseExtends extends Thread
// 通过继承Thread类,并实现它的抽象方法run()
// 适当时候创建这一Thread子类的实例来实现多线程机制
// 一个线程启动后(也即进入就绪状态)一旦获得CPU将自动调用它的run()方法
{

    ThreadUseExtends() {
    }// 构造函数

    public void run() {
        System.out.println("我是Thread子类的线程实例!");
        System.out.println("我将挂起10秒!");
        System.out.println("回到主线程,请稍等,刚才主线程挂起可能还没醒过来!");
        try {
            sleep(10000);// 挂起5秒
        } catch (InterruptedException e) {
            return;
        }
        // 如果该run()方法顺序执行完了,线程将自动结束,而不会被主线程杀掉
        // 但如果休眠时间过长,则线程还存活,可能被stop()杀掉
    }
}

class ThreadUseRunnable implements Runnable
// 通过实现Runnable接口中的run()方法,再以这个实现了run()方法的类
// 为参数创建Thread的线程实例
{
    // Thread thread2=new Thread(this);
    // 以这个实现了Runnable接口中run()方法的类为参数创建Thread类的线程实例
    ThreadUseRunnable() {
    }// 构造函数

    public void run() {
        System.out.println("我是Thread类的线程实例并以实现了Runnable接口的类为参数!");
        System.out.println("我将挂起1秒!");
        System.out.println("回到主线程,请稍等 jn0-120 e20-040 ,刚才主线程挂起可能还没醒过来!");
        try {
            Thread.sleep(1000);// 挂起5秒
        } catch (InterruptedException e) {
            return;
        }
        // 如果该run()方法顺序执行完了,线程将自动结束,而不会被主线程杀掉
        // 但如果休眠时间过长,则线程还存活,可能被stop()杀掉
    }

}
// 该程序可做的修改如改休眠时间或优先级setPriority()
分享到:
评论

相关推荐

    JAVA多线程实例 可直接下载

    利用JAVA编写的多线程运行实例 压缩文件,可直接运行 ...利用JAVA编写的多线程运行实例 压缩文件,可直接运行利用JAVA编写的多线程运行实例 压缩文件,可直接运行利用JAVA编写的多线程运行实例 压缩文件,可直接运行

    java 多线程并发实例

    在Java编程中,多线程并发是...总之,Java的多线程并发实例可以帮助我们更好地理解和实践线程控制、同步机制以及经典的设计模式,提升我们的编程能力。通过不断学习和实践,我们可以编写出高效、安全的多线程并发程序。

    JAVA多线程的实例

    Java多线程是Java编程中的重要概念,它允许程序同时执行多个任务,提高了程序的效率和响应性。在Java中,实现多线程有两种主要方式:通过实现`Runnable`接口或者继承`Thread`类。 首先,让我们从创建线程开始。当你...

    java多线程的讲解和实战

    Java多线程是Java编程中的重要概念,尤其在如今的多核处理器环境下,理解并熟练掌握多线程技术对于提高程序性能和响应速度至关重要。本资料详细讲解了Java多线程的原理,并提供了丰富的实战代码,非常适合Java初学者...

    java线程实例 各种小Demo

    Java线程是多任务编程的重要概念,它允许程序同时执行多个独立的任务,从而...在"线程池.rar"和"线程实例"这两个文件中,你可以找到关于这些概念的具体示例代码,通过学习和实践,可以深入理解Java线程的运用和管理。

    Java多线程实例图形版

    总结起来,"Java多线程实例图形版"是一个结合理论与实践的教学资源,通过“哲学家就餐问题”这一经典案例,帮助开发者理解多线程的基本概念、并发问题以及解决策略。通过学习这个实例,不仅可以掌握Java多线程编程的...

    java多线程编程实例_Source

    在本实例源码中,包含17个章节和上百个实例,旨在深入讲解Java多线程的核心概念和实际应用。 一、线程基础知识 在Java中,线程是程序的执行流,每个线程都有自己的程序计数器、虚拟机栈、本地方法栈和一部分堆内存...

    java多线程实例下载

    java多线程实例下载,直接导入到eclipse即可java多线程实例下载,直接导入到eclipse即可java多线程实例下载,直接导入到eclipse即可java多线程实例下载,直接导入到eclipse即可

    Java多线程编程实例

    本书“Java多线程编程实例”深入浅出地讲解了如何在Java环境中实现多线程操作,尽管出版时间较早,但其内容的经典性和实用性使其在现代开发中仍具有极高的参考价值。 首先,我们要理解Java中的线程是如何创建的。...

    java多线程经典案例

    Java多线程是Java编程中的重要概念,它允许程序同时执行多个任务,极大地提升了程序的效率和性能。在Java中,实现多线程有两种主要方式:通过实现Runnable接口或者继承Thread类。本案例将深入探讨Java多线程中的关键...

    java多线程实例 代码可执行 绝对开源

    总的来说,这个"java多线程实例"是一个实用的学习资源,它展示了如何利用Java的多线程特性进行高效的网络下载,并通过合理的线程同步和文件操作来实现资源的合并。对于想要深入理解Java多线程和网络编程的开发者来说...

    java多线程实例

    Java 多线程实例 Java 多线程是Java编程语言的一个重要特性,它使得程序能够在同一时间执行多个任务,从而提高系统效率和资源利用率。本文将深入探讨Java中的线程概念、创建线程的方式以及如何实现线程的并发执行。...

    java多线程编程实例

    ### Java多线程编程实例解析 #### 1. 创建线程的方式 在Java中,创建线程有两种主要方式:通过继承`Thread`类或实现`Runnable`接口。 - **继承Thread类**:创建一个新类继承自`Thread`,并重写其`run()`方法。在`...

    java 多线程实例

    线程优先级也是Java多线程中的一个重要特性,Java线程有10个优先级,从`MIN_PRIORITY`(1)到`MAX_PRIORITY`(10),默认优先级是`NORM_PRIORITY`(5)。优先级高的线程可能会比优先级低的线程先执行,但这并不是绝对的,...

    Java多线程实例代码

    Java多线程是Java编程中的重要概念,它允许程序同时执行多个任务,提高了程序的效率和响应性。在Java中,实现多线程有两种主要方式:通过继承`Thread`类和实现`Runnable`接口。 1. 继承Thread类: 当你需要创建一...

    java线程简单实例.txt

    java Runnable线程简单实例。简单实用,可用可参考;多用多理解;线程可用用在很多场景,java程序猿必备技能

    Java线程实例

    Java线程实例通常包括生产者消费者模型、哲学家就餐问题、银行家算法等经典案例,这些实例有助于理解线程的同步、协作和资源管理。 总结来说,Java线程是Java编程中不可或缺的一部分,理解和掌握线程的创建、同步、...

    eclipse项目java线程实例

    在这个"Eclipse项目java线程实例"中,我们可以深入理解并实践Java线程的创建、管理和同步机制。 首先,Java线程允许程序同时执行多个不同的任务,从而提高系统的效率和响应性。Java提供了两种创建线程的方式:通过...

    《Java多线程编程实例》随书源码

    - 新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)、等待(Waiting)、超时等待(Timed Waiting)和终止(Terminated)是Java线程的六种状态。 通过《Java多线程编程实例》随书源码,读者可以...

Global site tag (gtag.js) - Google Analytics