`

线程的解说及实例

    博客分类:
  • JAVA
阅读更多

线程的用法:

1. 继承Thread类,一定要覆盖run方法,代码都写到run方法里面。

2. 实现Runnable接口(java.lang),接口中有run方法。

 

Thread.currentThread.getName()方法和this.getName()方法的区别:

    只有在一个类继承了Thread类时,这两个方法才能通用,因为只有Thread类中才有getName()方法,而如果当一个类去实现Runnable接口时,则不能用this.getName()方法,因为它不是Thread类的子类。

 

--------------------------------------------------------

public class TestMitiThread1 implements Runnable {
 
    public static void main(String[] args) {
        System.out.println(Thread.currentThread().getName() + " 线程运行开始!");
        TestMitiThread1 test = new TestMitiThread1();
        Thread thread1 = new Thread(test);
        Thread thread2 = new Thread(test);
        thread1.start();
        thread2.start();
        System.out.println(Thread.currentThread().getName() + " 线程运行结束!");
    }
 
    public void run() {
        System.out.println(Thread.currentThread().getName() + " 线程运行开始!");
        for (int i = 0; i < 10; i++) {
            System.out.println(i + " " + Thread.currentThread().getName());
            try {
                Thread.sleep((int) Math.random() * 10);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        System.out.println(Thread.currentThread().getName() + " 线程运行结束!");
    }
}
结果:
main 线程运行开始!
Thread-0 线程运行开始!
main 线程运行结束!
0 Thread-0
Thread-1 线程运行开始!
0 Thread-1
1 Thread-1
1 Thread-0
2 Thread-0
2 Thread-1
3 Thread-0
3 Thread-1
4 Thread-0
4 Thread-1
5 Thread-0
6 Thread-0
5 Thread-1
7 Thread-0
8 Thread-0
6 Thread-1
9 Thread-0
7 Thread-1
Thread-0 线程运行结束!
8 Thread-1
9 Thread-1
Thread-1 线程运行结束!
说明:
TestMitiThread1类通过实现Runnable接口,使得该类有了多线程类的特征。run()方法是多线程程序的一个约定。所有的多线程代码都在run方法里面。Thread类实际上也是实现了Runnable接口的类。
在启动的多线程的时候,需要先通过Thread类的构造方法Thread(Runnable target) 构造出对象,然后调用Thread对象的start()方法来运行多线程代码。
实际上所有的多线程代码都是通过运行Thread的start()方法来运行的。因此,不管是扩展Thread类还是实现Runnable接口来实现多线程,最终还是通过Thread的对象的API来控制线程的,熟悉Thread类的API是进行多线程编程的基础。
---------------------------------------------------------------------------------------------
 
public class MyThread extends Thread{
	public int x = 0;
	public void run(){
		System.out.println(++x);
	}
	
	public static void main(String[] args) {
		for(int i=0;i<10;i++){
			Thread t = new MyThread();
			t.start();
		}
	}
}
结果: 10个1.......1......1
 
public class TaThread implements Runnable{
	public int x = 0;
	public void run(){
		System.out.println(++x);
	}
	
	public static void main(String[] args) {
		for(int i=0;i<10;i++){
			TaThread ta = new TaThread();
			Thread t = new Thread(ta);
			t.start();
		}
	}
}
结果: 从1到10.  1..5....10
 
分享到:
评论

相关推荐

    java多线程详细解说

    然后将这个类的实例传递给`Thread`类的构造函数,如`new Thread(new MyRunnable()).start()`。这种方式更加灵活,因为Java不支持多继承,而一个类可以同时实现多个接口。 无论是哪种方式,启动线程的关键在于调用`...

    java线程的详细解说

    Java线程的创建主要有两种方式:继承Thread类并重写run()方法,或者实现Runnable接口并实现run()方法,然后通过Thread类的构造函数传入Runnable实例。线程的启动则是通过调用Thread对象的start()方法,这会触发run()...

    java多线程设计模式详解(PDF及源码)

    (注意,本资源附带书中源代码可供参考) 多线程与并发处理是程序设计好坏优劣的重要课题,本书通过浅显易懂的文字与实例来介绍Java线程相关的设计模式概念,并且通过实际的Java程序范例和 UML图示来一一解说,书中...

    mutex 应用实例与解说

    ### 互斥量应用实例与解说 #### 一、引言 在多线程编程中,线程之间的同步和资源管理至关重要。为了确保程序的稳定性和数据的一致性,开发人员常常需要使用诸如互斥量(mutex)、临界区、信号量等机制来管理线程...

    java多线程设计模式及源码

    多线程与并发处理是程序设计好坏优劣的重要课题,本书通过浅显易懂的文字与实例来介绍JAVA线程相关的设计模式概念,并且通过实际的JAVA程序范例和UML图示来一一解说,书中有代码的重要部分加上标注使读者更加容易...

    delphi 经典 实例 集锦

    8. **多线程编程**:创建和管理线程,同步机制如CriticalSection、Mutex等。 9. **异常处理**:Try...Except...Finally结构用于捕获和处理程序运行时可能出现的错误。 10. **单元测试**:使用TestComplete、DUnit...

    C++串口编程实例 源代码详细解说

    在实际应用中,可能需要添加线程同步机制,以确保数据的正确性和完整性。 5. **错误处理**:串口通信中,错误处理至关重要。MFC提供了OnMessage、OnError等函数,用于捕获和处理通信过程中的异常情况。 6. **事件...

    《Java多线程设计模式》附源码中文教程 (PDF)

    多线程与并发处理是程序设计好坏优劣的重要课题,本书通过浅显易懂的文字与实例来介绍Java线程相关的设计模式概念,并且通过实际的Java程序范例和 UML图示来一一解说,书中在代码的重要部分加上标注使读者更加容易...

    java多线程设计模式详解part2

    多线程与并发处理是程序设计好坏优劣的重要课题,本书通过浅显易懂的文字与实例来介绍JAVA线程相关的设计模式概念,并且通过实际的JAVA程序范例和UML图示来一一解说,书中有代码的重要部分加上标注使读者更加容易...

    java多线程设计模式详解part1

    多线程与并发处理是程序设计好坏优劣的重要课题,本书通过浅显易懂的文字与实例来介绍JAVA线程相关的设计模式概念,并且通过实际的JAVA程序范例和UML图示来一一解说,书中有代码的重要部分加上标注使读者更加容易...

    Java多线程设计模式详解

    此外,本书还包括了Java线程基础内容的介绍、附录内容以及对每个设计模式的详细解说和实际应用的范例程序。范例程序的代码可以从出版社的网站上下载,方便读者参考和实践。 从内容上来看,本书很可能包含了对多线程...

    java多线程设计模式

    多线程与并发处理是程序设计好坏优劣的重要课题,本书通过浅显易懂的文字与实例来介绍JAVA线程相关的设计模式概念,并且通过实际的JAVA程序范例和UML图示来一一解说,书中有代码的重要部分加上标注使读者更加容易...

    VC编程实例.rar

    《VC编程实例.rar》是一个包含大量Visual C++(简称VC)编程实践案例和详细解说的压缩文件,旨在帮助开发者深入理解和掌握VC编程技术。在这个压缩包中,你将找到一个名为“hada”的子文件,这可能是源代码文件或者一...

    JVM详细解说图.zip

    5. **内存管理(Memory Management)**:JVM通过内存模型来管理堆内存,包括新生代、老年代、永久代(在Java 8及以后版本中被元空间替代)等区域,以优化对象的生命周期管理。 6. **字节码验证(Bytecode ...

    JAVA多线程设计模式高清版

    多线程与并发处理是程序设计好坏优劣的重要课题,本书通过浅显易懂的文字与实例来介绍JAVA线程相关的设计模式概念,并且通过实际的JAVA程序范例和UML图示来一一解说,书中有代码的重要部分加上标注使读者更加容易...

    Java多线程设计模式

    多线程与并发处理是程序设计好坏优劣的重要课题,本书通过浅显易懂的文字与实例来介绍JAVA线程相关的设计模式概念,并且通过实际的JAVA程序范例和UML图示来一一解说,书中有代码的重要部分加上标注使读者更加容易...

    《JAVA多线程设计模式》(结城浩著2005)

    多线程与并发处理是程序设计好坏优劣的重要课题,本书通过浅显易懂的文字与实例来介绍Java线程相关的设计模式概念,并且通过实际的Java程序范例和UML图示来一一解说,书中有代码的重要部分加上标注使读者更加容易...

    hibernate的原理详细解说

    ### Hibernate原理详细解说 #### Hibernate概述 Hibernate 是一个开源的对象关系映射(Object Relational Mapping,简称 ORM)框架,用于 Java 应用程序与关系型数据库之间的交互。它通过将对象模型与数据库模型...

Global site tag (gtag.js) - Google Analytics