`
hunter090730
  • 浏览: 194338 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

创建线程的方式

    博客分类:
  • java
阅读更多

There are two ways to create a new thread of execution.

 

One is to declare a class to be a subclass of Thread. This subclass should override the run method of class Thread. An instance of the subclass can then be allocated and started.

class PrimeThread extends Thread {
         long minPrime;
         PrimeThread(long minPrime) {
             this.minPrime = minPrime;
         }

         public void run() {
             // compute primes larger than minPrime
              . . .
         }
     }


The following code would then create a thread and start it running:

 

     PrimeThread p = new PrimeThread(143);
     p.start();
 

The other way to create a thread is to declare a class that implements the Runnable interface. That class then implements the run method. An instance of the class can then be allocated, passed as an argument when creating Thread, and started. The same example in this other style looks like the following:

 


     class PrimeRun implements Runnable {
         long minPrime;
         PrimeRun(long minPrime) {
             this.minPrime = minPrime;
         }
 
         public void run() {
             // compute primes larger than minPrime
              . . .
         }
     }
 

The following code would then create a thread and start it running:

 

     PrimeRun p = new PrimeRun(143);
     new Thread(p).start();
其实,JDK中的Thread也不过是由sun自已实现Runnable接口的类而已.
public class Thread
extends Object
implements Runnable
分享到:
评论

相关推荐

    Java使用Callable和Future创建线程操作示例

    "Java使用Callable和Future创建线程操作示例" Java使用Callable和Future创建线程操作示例主要介绍了Java使用Callable和Future创建线程操作,结合实例形式分析了java使用Callable接口和Future类创建线程的相关操作...

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

    1.方式1:继承 QThread 类方式:通过继承 QThread 类并重写 run() 函数来创建线程,线程对象本身即为线程。 优点:相对简单,易于理解和实现;可以直接重写 run() 函数来定义线程的逻辑;可以通过信号和槽机制与其他...

    创建线程,利用互斥实现线程共享变量通信

    一、题目: 创建线程,利用互斥实现线程共享变量通信 二、目的 掌握线程创建和终止,加深对线程和进程概念的理解,会用同步与互斥方法实现线程之间的通信。 三、内容和要求 软件界面上点“创建线程” 按钮,创建三个...

    Linux下预创建线程并发网络服务器的两种实现方法.pdf

    预创建线程方式的主要优势在于减少系统开销,特别是在高并发环境下,因为线程创建的开销只发生在程序启动时。然而,这种方法也需要注意线程数量的控制,过多的线程可能会导致内存消耗过大,反而影响服务器性能。因此...

    分离状态创建线程

    可结合线程是默认状态,意味着在创建线程后,父线程需要通过调用`pthread_join()`函数来等待新线程的结束,以便回收资源和获取线程的返回值。在这个过程中,新线程的内存资源(如栈空间)不会被释放,直到父线程调用...

    创建线程 示例 vc++

    在VC++环境中,创建线程是一项重要的多任务处理技术,特别是在开发实时系统、网络编程以及高性能应用程序时。本文将深入探讨如何在VC++中创建线程,并基于《vc++网络编程经典案例》一书中的示例进行讲解。 线程是...

    创建线程及线程间通信

    创建线程主要有两种方式:一是通过系统调用来创建,比如在POSIX系统中使用`pthread_create`函数;二是通过语言支持,如Java中的`Thread`类或C#的`Thread`类。在给定的描述中,提到的是在VC6.0环境下实现,这意味着...

    VS2019 MFC线程的创建

    总结起来,VS2019中的MFC线程创建涉及到创建自定义线程类、覆写关键成员函数、使用 `AfxBeginThread()` 创建线程以及进行线程同步。理解这些概念和实践,对于开发高效、稳定的多线程MFC应用至关重要。

    线程创建和管理

    Thread类是C#中另一种创建线程的方式,使用Thread类可以创建一个独立的线程,该线程有它独立的执行路径,能够与其它的线程同时地运行。 使用Thread类创建线程需要手动地创建和管理线程,这需要开发者有充分的线程...

    创建线程的源代码资源

    本资源主要关注如何在不同的编程语言中创建线程,以下是对创建线程这一主题的详细阐述。 在Java中,创建线程有以下两种方法: 1. 继承Thread类:创建一个新的类,该类继承自`java.lang.Thread`,然后重写`run()`...

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

    在Java编程语言中,创建线程是实现并发执行任务的关键步骤。Java提供了两种主要的方法来创建线程,分别是直接继承自`Thread`类和实现`Runnable`接口。这两种方法各有其特点和适用场景。 1. **继承Thread类**: 当...

    MFC创建多线程(工作者线程)demo

    `AfxBeginThread`是MFC提供的一个方便的函数,用于创建线程。它的主要优点在于能自动管理线程的资源,比如清理消息队列、调用`_AFXWIN_INIT`来初始化MFC支持,以及在线程结束时调用`AfxEndThread`。这些都是MFC程序...

    易语言类方法创建线程

    易语言类方法创建线程源码,类方法创建线程,ddd,取当前类指针,取方法指针,创建线程,线程接口,创建循环线程,关闭循环线程,取循环线程空闲索引,循环线程接口,线程_创建线程,线程_等待执行完毕,线程_线程结束,操作_取...

    VB创建线程动态链接库(VBCreateThread.dll)

    功能:VB创建线程(其它语言没测试过,不知是否能用)。 编写原因:鉴于VB创建稳定线程的需求 特点:可替代API CreateThread来创建线程,且自动对线程进行初始化,线程函数中不再需要初始化线程就可以使用对象、类、...

    C# winform动态创建和关闭多线程源码 可运行

    在Winform应用中,动态创建线程通常用于执行耗时的操作,避免阻塞UI。我们可以通过以下步骤实现: 1. 创建一个新的Thread实例,传入一个方法的委托作为参数。这个方法将在新线程上执行。 ```csharp Thread new...

    史上最强多线程面试44题和答案:线程锁+线程池+线程同步等

    创建线程方式的对比 - **实现`Runnable`/`Callable`接口 vs 继承`Thread`类** - 实现接口的优势在于可以同时继承其他类,而继承`Thread`类则无法再继承其他类。 - 使用接口方式创建的线程,多个线程可以共享同一...

    采用AfxBeginThread创建工作线程

    `AfxBeginThread`函数是MFC提供的一种便捷方式,用于创建一个新的线程。下面将详细讨论`AfxBeginThread`的使用、工作线程的概念、多线程编程的重要性以及MFC中的线程通信。 1. **`AfxBeginThread`函数详解** `...

    vs2013创建多线程教程

    1. 创建线程结构体 首先,需要定义一个线程结构体,用于存储线程的相关信息。例如: ```cpp typedef struct ThreadInfo { CString name; int age; CProgressCtrl *progress; } Thread; ``` 这个结构体中包含了...

    易语言创建远程线程

    易语言创建远程线程源码,创建远程线程,CALL,GetProcessID,OpenProcess,VirtualAllocEx,WriteProcessMemoryByte,CreateRemoteThread,WaitForSingleObject,CreateToolhelp32Snapshot,Process32Next,Process32First,...

Global site tag (gtag.js) - Google Analytics