`

多线程的实现两种方式

阅读更多
java.lang.Thread 和 java.lang.Runnable 都可以实现多线程访问!
因为自己是在网站测试的,所以为了不影响网站,发出来与大家分享一下
public class MyThread extends Thread {
public MyThread(String param)
{
super(param);
}
public void run()
{
System.out.println(this.getName()+"线程开始了");
for(int i=0;i<20;i++)
{
try
{
System.out.println(i+"==="+this.getName());
sleep((int) Math.random() * 10);//休眠时间
}catch(Exception ex)
{
ex.printStackTrace();
}
}
System.out.println(getName() + " 线程运行结束!");
}

}
//第二种实现方式
public class MyRunnable implements Runnable {

public static void main(String args[]) throws Exception
{
System.out.println(Thread.currentThread().getName()+"线程开始了");
MyRunnable myrun=new MyRunnable();
Thread thread1=new  Thread(myrun);
Thread thread2=new  Thread(myrun);
thread1.run();
thread2.run();
System.out.println(Thread.currentThread().getName()+"线程结束了");
}
@Override
public void run() {
System.out.println(Thread.currentThread().getName()+"线程开始了");
for(int i=0;i<20;i++)
{
try
{
System.out.println(i+"==="+Thread.currentThread().getName());
Thread.sleep((int) Math.random() * 10);//休眠时间
}catch(Exception ex)
{
ex.printStackTrace();
}
}
System.out.println(Thread.currentThread().getName() + " 线程运行结束!");
}
}
1
0
分享到:
评论

相关推荐

    多线程两种实现方式Java

    `ThreadProject`可能是包含多个Java文件的项目,这些文件展示了如何通过上述两种方式实现多线程。你可以通过运行这些示例来更好地理解和学习Java多线程的概念。例如,它可能包含一个继承`Thread`的类,一个实现`...

    Java有两种实现多线程的方式:通过Runnable接口、通过Thread直接实现,请掌握这两种实现方式,并编写示例程序。

    ### Java中的两种多线程实现方式 在Java中,实现多线程的两种主要方式分别是:**通过继承`Thread`类** 和 **实现`Runnable`接口**。下面将详细介绍这两种方式,并提供相应的示例程序。 #### 一、通过继承`Thread`...

    Java中有两种实现多线程的方式以及两种方式之间的区别

    Java中有两种实现多线程的...  Java代码 Java中有两种实现多线程的方式以及两种方式之间的区别 Java中有两种实现多线程的方式以及两种方式之间的区别  classThreadTestextendsThread{ privateintticket=100; publi

    Java多线程-对比创建多线程的两种方式

    Java多线程编程中,创建线程主要有两种方式:继承`Thread`类和实现`Runnable`接口。这两种方式虽然都能实现多线程,但它们在实际应用中有着不同的特性和适用场景。 首先,我们来看看继承`Thread`类的方式。这种方式...

    java多线程的两种实现

    在Java中,有两种主要的实现多线程的方式:通过`Thread`类和通过实现`Runnable`接口。 1. **通过`Thread`类实现多线程** 当我们创建一个`Thread`类的子类时,可以重写`run()`方法来定义线程执行的任务。例如: ``...

    ios多线程开发的常用四种方式和基本使用

    本文将深入探讨四种常用的iOS多线程开发方式:pthread、NSThread、NSOperation及NSOperationQueue,以及Grand Central Dispatch(GCD)。 首先,让我们了解下pthread。pthread是POSIX线程库,它在iOS中被用于跨平台...

    两种多线程使用方式演示.rar

    首先,我们要了解多线程的两种基本实现方式: 1. **线程对象创建**:这是最常见的方式,程序员通过调用易语言提供的线程创建函数(如“创建线程”命令)创建一个新的线程。线程对象有自己的执行入口点,通常是一个...

    多线程实现的五种不同排序

    在本资源中,"多线程实现的五种不同排序"提供了VC++(Visual C++)源码,这对于学习多线程编程以及数据结构排序的初学者来说是一个很好的实践材料。下面将详细介绍这五个不同的排序算法及其在多线程环境下的实现。 ...

    java多线程实现月食

    Java提供了内置的多线程支持,主要通过两种方式:继承Thread类或实现Runnable接口。在这个项目中,可能采用了实现Runnable接口的方法,因为这样可以避免单继承的限制,提高代码的复用性。 要实现流星和月食的效果,...

    VC++多线程实现三种排序算法比较----冒泡排序、快速排序、归并排序

    本篇文章主要探讨了如何在VC++环境中利用多线程技术来实现三种经典的排序算法:冒泡排序、快速排序和归并排序,并对它们的性能进行了比较。 首先,冒泡排序是一种简单的排序算法,它重复地遍历待排序的数列,一次...

    多线程实现的秒表

    在编程领域,多线程是一种常见且强大的技术,它允许程序同时执行多个任务,从而提高效率和响应性。本文将深入探讨如何使用Microsoft Foundation Classes (MFC) 库在C++中实现一个多线程的秒表应用。MFC是微软为...

    java用线程的两种实现方式设计四个线程两次对J加1两次对J减1

    Java 语言提供了多种方式来实现多线程编程,今天我们将讨论其中的两种实现方式,并使用四个线程来演示对变量 J 的加一和减一操作。 实现方式一:通过继承 Thread 类 在 Java 中,我们可以通过继承 Thread 类来创建...

    多线程两种方式和区别总结

    首先,让我们了解这两种方式的基本概念: 1. **继承Thread类**:这是创建多线程的直接方式,通过创建一个新的类,该类继承自`Thread`类,然后重写`run()`方法。创建线程时,只需要创建该子类的实例并调用`start()`...

    Qt创建线程的两种方式+线程池方式

    1.方式1:继承 QThread 类方式:...两种方式的选择取决于具体的需求和设计。仅需简单的线程操作,继承 QThread 类方式可能更为简洁。如果需要更灵活的线程控制和对象交互,使用类对象的 moveToThread() 方式可能更适合

    pb多线程实现的例程

    - 创建线程通常有两种方式:通过继承Thread类或实现Runnable接口。继承Thread类直接重写run()方法,而实现Runnable接口则需将run()方法放在类中,然后将该类实例传给Thread对象。 - 启动线程:调用Thread对象的...

    用户级线程的介绍,怎样实现多线程等等

    线程是计算机编程中的一个重要概念,它是一个进程中执行的不同控制流,可以理解为程序执行的独立路径。...无论是用户级线程还是内核级线程,都有其适用的场合和局限性,选择哪种方式需要根据实际应用的需求来权衡。

    kafka demo ,两种线程消费方式

    在本文中,我们将深入探讨Apache Kafka的两种线程...这两种方式各有优缺点,需要根据实际的性能需求和系统架构来决定。记住,无论选择哪种方式,都需要确保代码的正确性和线程安全性,以及对Kafka消费者API的熟练掌握。

    易语言两种多线程使用方式演示

    总结来说,易语言提供了“创建线程”和“启动进程”两种多线程实现方式,分别适用于不同场景。学习和掌握这些方法,对于易语言的开发者来说,是提高程序性能和解决复杂问题的重要技能。结合提供的源码,我们可以更...

    linux上实现多进程和多线程实现同步互斥(源代码)

    在Linux操作系统中,多进程和多线程是两种并发执行的方式,它们在处理并发问题时,经常需要进行同步和互斥操作,以确保数据的一致性和程序的正确性。本篇将详细介绍这两种并发模型以及如何在Linux环境中实现同步互斥...

    java线程:两种传统的实现方式.zip

    这两种方式都可以实现线程的创建和运行,但实现`Runnable`接口更常见,因为它允许你在不干扰类继承结构的情况下复用已有的类。 在实际应用中,你可能还需要考虑线程同步和通信,比如使用`wait()`, `notify()`或`...

Global site tag (gtag.js) - Google Analytics