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

写一个线程的两种方法

阅读更多

我们通过同一个例子,看线程的两种创建方法,以及运行方法

一种是声明 Thread 的子类,重载 Thread 类的方法 run

public class MyThread  extends Thread {
  public void run() {
    for (int count = 1, row = 1; row < 20; row++, count++) {
      for (int i = 0; i < count; i++)
        System.out.print('*');
      System.out.print('\n');
    }
  }
}

运行时可以有两种方法,A,B.

  public static void main(String[] args) {
    MyThread mt = new MyThread();//A
    mt.start();//A
    Thread myThread = new Thread(new MyThread());//B
    myThread.start();//B

    for (int i = 0; i < 500; i++) {
      System.out.println(i);
    }
  }

另一种途径是声明一个类,该类实现 Runnable 接口。

正在装载数据……
然后再实现方法 run

// public class MyThread  extends Thread {
public class MyThread implements Runnable {
  public void run() {
    for (int count = 1, row = 1; row < 20; row++, count++) {
      for (int i = 0; i < count; i++)
        System.out.print('*');
      System.out.print('\n');
    }
  }
}

运行时只能有一种方法B.

  public static void main(String[] args) {
 //   MyThread mt = new MyThread();
 //   mt.start();

    Thread myThread = new Thread(new MyThread());
    myThread.start();
    for (int i = 0; i < 500; i++) {
      System.out.println(i);
    }
  }

分享到:
评论

相关推荐

    java用线程两种方式

    在这个main方法中,程序通过两种方式创建了两个线程:一个打印1到1000之间的所有奇数,另一个打印所有偶数。通过使用while循环,程序会持续运行直到两个线程都完成了它们的任务。 总结来说,Java通过两种方式提供了...

    java程序 两个线程实现学生成绩的读写

    此外,为了调试和控制线程,我们可以使用`Thread.sleep()`使线程暂停一段时间,或者使用`join()`方法让一个线程等待另一个线程完成。在实际编程中,还需要考虑异常处理,防止线程中断或其他异常情况导致程序崩溃。 ...

    一个线程写,一个线程读的copy工具

    总之,一个线程写,一个线程读的copy工具是多线程编程在文件操作中的一种实用应用,它能够提高文件复制的速度,尤其是在I/O性能较高的情况下。然而,实现这样的工具需要考虑线程同步、错误处理等多个方面,以确保其...

    在Java中创建线程有两种方法

    Java提供了两种主要的方法来创建线程,分别是直接继承自`Thread`类和实现`Runnable`接口。这两种方法各有其特点和适用场景。 1. **继承Thread类**: 当你选择继承`Thread`类时,你需要创建一个新的类,该类直接...

    实现一个数据单元,包括学号和姓名两部分。编写两个线程,一个线程往数据单元中写,另一个线程往出读。要求每写一次就往出读一次。

    本实验的任务是设计并实现一个数据单元,该单元包含学号和姓名两个字段,并且使用两个线程,一个用于写入数据,另一个用于读取数据。这种设计模式被称为“生产者-消费者”问题,是多线程编程中的经典案例。 首先,...

    易语言多线程传递文本参数两种方法

    本篇文章将深入探讨如何在易语言中通过两种不同的方法传递文本参数到线程中。 ### 方法一:使用线程创建时传递参数 易语言中,我们可以通过在创建线程时直接传递参数来实现。具体步骤如下: 1. **定义线程函数**...

    启动两个线程,一个线程打印1~52,另一个线程打印A~Z

    启动两个线程,一个线程打印1~52,另一个线程打印A~Z

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

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

    java中创建线程两个方法及区别

    Java提供了多种创建线程的方式,其中最常见的是通过继承`Thread`类和实现`Runnable`接口这两种方法。下面将详细阐述这两种创建线程的方法及其区别。 ### 一、通过继承`Thread`类创建线程 当一个类继承了`Thread`类...

    易语言多线程传递文本参数两种方法源码

    易语言多线程传递文本参数是开发中常常遇到的问题,下面将详细介绍两种常见的方法。 **方法一:使用全局变量** 易语言中,全局变量可以在程序的不同线程间共享数据,因此可以用来传递参数。这种方式简单直接,但...

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

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

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

    本文将深入探讨两种传统的Java线程实现方式,并通过一个具体的例子来阐述如何创建和管理这些线程。 首先,我们来看第一种线程实现方式:继承`Thread`类。当你创建一个新的类继承自`java.lang.Thread`,你可以重写它...

    用多线程实现串口读写数据以及文件的读写

    2. 使用CreateThread函数创建一个新的线程,该线程将负责串口的读写操作。 3. 在新线程中,使用CAsyncSocket的成员函数如Connect、Accept、Send和Receive进行串口通信。 4. 实现消息机制,比如使用OnReceive和...

    创建线程的两种方法

    标题提到的"创建线程的两种方法"指的是使用`Thread`类和实现`Runnable`接口。这两种方法都是Java中实现多线程的重要手段,各有特点和适用场景。下面我们将详细探讨这两种方法。 **1. 继承Thread类** 当一个类继承...

    两个串口多线程通信

    对于“两个串口多线程通信”,通常会有一个主线程负责协调和调度,而其他线程则分别负责一个串口的读写操作。以下是一般实现步骤: 1. **初始化线程**:创建两个线程,每个线程负责一个串口的读写。可以使用各种...

    多线程两种实现方式Java

    本篇将详细讲解Java中实现多线程的两种主要方法:继承Thread类和实现Runnable接口。 ### 继承Thread类 1. **创建子类**:首先,我们需要创建一个新的类,该类继承自Java的`Thread`类。这样,我们的类就拥有了`...

    linux中一个程序的两个线程的同步(c语言实现)

    在本实验中,我们将创建两个线程,一个负责加一,另一个负责输出。两个线程共享同一个变量 a,並使用信号灯实现同步。 首先,我们创建了一个共享缓冲区,并将其初始化为指定的大小。然后,我们创建了一个信号灯集,...

    操作系统-创建多线程-读者写者

    例如,可以使用一个互斥锁来保护对共享资源的访问,确保任何时候只有一个写操作正在进行,同时可以有多个读操作发生。 #### 小结 本文通过对一个简单的多线程程序的分析,介绍了如何在Windows环境中使用`...

    线程同步的五种方法

    当一个线程获得互斥量后,其他试图获取该互斥量的线程将被阻塞,直到拥有者释放它。在VC6.0中,可以通过`CreateMutex()`函数创建互斥量,并使用`WaitForSingleObject()`或`WaitForMultipleObjects()`来等待获取互斥...

    vb.net2012操作跨窗体控件(单线程和多线程两种方法)实例

    在码农的生活中,很多级码农都有这样的经历,会被一个小小的技术问题拦住,然后进度跟不上了,被老板XXXX一大通了。心情不爽了。 好吧,这个曾经是我遇到拦路虎之一。但事实上不是什么大技术。技术就是一层纸,破了...

Global site tag (gtag.js) - Google Analytics