`
wanxiaotao12
  • 浏览: 476860 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java Thread 多线程

 
阅读更多

     使用Java多线程编程很容易, 有两种方法, 两种方法总是实现接口java.lang.Runnable。

    方法一: 创建一个类实现接口Runnable, 创造该类的实例作为参数传给Thread构造函数, 创造Thread实例.

public class ThreadTest implements Runnable {
	
	public void run() {
		System.out.println("hello world " + Thread.currentThread().getName());
	}
	
	public static void main(String[] args) {
		ThreadTest t = new ThreadTest();
		for(int i=0; i<5; i++) {
			Thread thread = new Thread(t, "thread" + i);
			thread.start();
		}
		
		System.out.println("aaaaaaaaaaa");
	}
}

 

方法二:

继承java.lang.Thread, 创造该类对象. 这种方法一般要重写(Override)run方法, 不然该线程就什么也没做就结束了.

public class ThreadTest2 extends Thread{
	@Override
	public void run() {
		System.out.println("hell world");
	}

	public static void main(String[] args) throws InterruptedException {
		ThreadTest2 thread =  new ThreadTest2();
		thread.start();
		System.out.println("**************");
	}

}

 两种方法的比较:两者可以实现同样的功能, 由于Java是单继承, 所以后者不能再继承其它类了, 使用方法一可以继承其他的类. 前者还有个好处就是可以把线程间共享的数据作为类的字段, 然后把该类实现Singleton, 只实例化一个对象, 作为参数传给Thread. 当然如果不想共享成员, 而对于每个Thread提供不同的Runnable对象. 而后者要实现共享就要在继承的类中声明一堆static属性.

Java Thread通过方法start启动, 而实际运行的内容在方法run中. 不过简单地调用run, 如thread.run(); 只是把run作为普通的方法调用了一遍, 并没有启动新的线程. 当run中的内容运行完之后, 线程便自动结束了. 类Thread提供一个静态方法sleep. 任何时候调用该方法都可以把当前执行的线程暂停指定的时间.

分享到:
评论

相关推荐

    Java Thread多线程全面解析

    Java Thread多线程全面解析涵盖了Java编程中关于线程的重要概念和实践技巧。在Java中,多线程是并发编程的基础,允许程序同时执行多个任务,提高系统资源利用率和应用程序的响应速度。 线程的生命周期包括五个基本...

    Thread实现多线程

    继承Thread类: 1必须重写run 方法:里面放置的实际的线程体 2 启动线程: 3创建Thread对象 4调用Thread对象的start 方法启动线程

    JAVAJAVA多线程教学演示系统论文

    2. **JAVA多线程API**:论文会详细阐述JAVA提供的多线程API,如Thread类、Runnable接口、ExecutorService和Future接口等。通过实例解析这些类和接口的使用方法,帮助读者理解如何在实际编程中创建和管理线程。 3. *...

    Java 模拟线程并发

    最后,Java并发库还包含了很多其他有用的工具,如Semaphore(信号量)用于控制同时访问特定资源的线程数量,CyclicBarrier(循环屏障)和CountDownLatch(计数器门锁)用于多线程间的协作,以及Lock接口及其实现如...

    Java的多线程(java基础)

    Java虚拟机(JVM)支持多线程,无论运行在何种操作系统上,Java程序都可以利用Thread类创建和管理线程。每个线程由虚拟CPU、执行的程序代码和处理的数据三部分组成。通过创建Thread类的实例,我们可以启动、控制和...

    javad多线程

    在 Java 中,多线程编程可以通过 Thread 类和 Runnable 接口来实现。 为什么需要多线程? 在单线程程序中,如果某个任务需要很长时间来执行,那么整个程序将被阻塞,无法响应用户的其他请求。使用多线程编程可以...

    Java多线程机制(讲述java里面与多线程有关的函数)

    Java多线程机制是Java编程中至关重要的一部分,它允许程序同时执行多个任务,提升应用程序的效率和响应性。以下是对各个知识点的详细说明: 9.1 Java中的线程: Java程序中的线程是在操作系统级别的线程基础上进行...

    java多线程进度条

    Java通过Thread类和Runnable接口来支持多线程。创建一个新线程通常有两种方式:继承Thread类并重写run()方法,或者实现Runnable接口并提供run()方法。在run()方法中编写线程执行的代码。 进度条通常由主线程负责...

    java 多线程操作数据库

    ### Java多线程操作数据库:深入解析与应用 在当今高度并发的应用环境中,Java多线程技术被广泛应用于处理数据库操作,以提升系统的响应速度和处理能力。本文将基于一个具体的Java多线程操作数据库的应用程序,深入...

    Java多线程知识点总结

    Java多线程是Java编程语言中一个非常重要的概念,它允许开发者在一个程序中创建多个执行线程并行运行,以提高程序的执行效率和响应速度。在Java中,线程的生命周期包含五个基本状态,分别是新建状态(New)、就绪...

    java多线程Demo

    在Java中,实现多线程有两种主要方式:继承Thread类和实现Runnable接口。 1. 继承Thread类: 当我们创建一个新的类,让它继承Thread类时,可以通过重写`run()`方法来定义线程执行的任务。然后创建该类的对象,并...

    java多线程的讲解和实战

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

    java多线程分页查询

    ### Java多线程分页查询知识点详解 #### 一、背景与需求分析 在实际的软件开发过程中,尤其是在处理大量数据时,如何高效地进行数据查询成为了一个关键问题。例如,在一个用户众多的社交平台上,当用户需要查看...

    java Thread 多线程

    总之,Java中的多线程通过Thread类和Runnable接口实现,通过`synchronized`关键字确保线程安全,利用`wait()`, `notify()`, 和 `notifyAll()`进行线程间通信,有效地提高了程序的并发性能和资源利用率。在编写多线程...

    java 多线程并发实例

    在Java编程中,多线程并发是提升程序执行效率、充分利用多核处理器资源的重要手段。本文将基于"java 多线程并发实例"这个主题,深入探讨Java中的多线程并发概念及其应用。 首先,我们要了解Java中的线程。线程是...

    Java_多线程与并发编程总结.doc

    Java多线程与并发编程是Java开发中至关重要的一部分,它涉及到如何高效地利用CPU资源,以实现程序的并行执行。在操作系统层面,多任务和多进程是通过分配不同的内存空间来实现的,而线程则共享同一进程的内存,这...

    java Socket 多线程

    Java Socket 多线程是网络编程中的一个重要概念,它结合了Java的并发处理能力和Socket通信技术,使得服务器能够同时处理多个客户端的连接请求。在Java中,Socket是用于在网络环境中进行双向通信的类,而多线程则允许...

    java多线程经典案例

    在Java中,实现多线程有两种主要方式:通过实现Runnable接口或者继承Thread类。本案例将深入探讨Java多线程中的关键知识点,包括线程同步、线程通信和线程阻塞。 线程同步是为了防止多个线程同时访问共享资源,导致...

    java多线程处理数据库数据

    在Java编程中,多线程处理是提升程序性能和效率的重要手段,特别是在处理大量数据库数据时。本主题将深入探讨如何使用Java的并发包(java.util.concurrent)来实现多线程对数据库数据的批量处理,包括增、删、改等...

    java多线程进度条实例

    在Java编程中,多线程是一项关键特性,它允许程序同时执行多个任务,极大地提高了效率。本实例将探讨如何利用Java实现一个具有进度条显示功能的多线程应用。进度条通常用于可视化地表示某个任务的完成程度,这对于长...

Global site tag (gtag.js) - Google Analytics