`
womendu
  • 浏览: 1474980 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Java多线程2—线程的创建

 
阅读更多

在java语言出现之前,多线程是通过操做硬件等方法实现的,尽管这是一种有用的方法,但编出的程序很难移植,所以程序员往往为此付出不小的代价。Java是第一个从语言级实现多线程的方法。由于java实现了多线程,使得利用java编写多线程的程序也比较简单,因此这也成了java语言相比于其他语言的一个优势。另外java是运行在虚拟机上的,可移植性强,这个特点和简单的多线程编写配合,使的java的优势更明显。扯的有点远了,回来,下面介绍线程的创建。

在创建我们自己写的线程的时候,java就已经先创建了一个线程,就是我们运行主函数main的线程。有时候我们可能会需要得到当前正在运行的线程,这里我们就可以用Thread类中的静态方法currentThread(),这个函数返回的是一个Thread类的实例的引用,我们可以调用getName()方法获得当前的线程的名字(具体的方法请读者自己查看java的帮助文档)。下面我们举一个例子:

public classaaa

{

public static void main(String[] args)

{

System.out.println(Thread.currentThread().getName());

}

}//main

下面我们介绍java中怎么创建多线程,java提供了两种创建多线程的方法,如下:

(1)从Thread类继承;

(2)实现Runnable接口。

对于这两种创建线程的方法,都必须实现一个run()方法,因为在我们创建线程后,调用start()启动线程之后,调用的是run()方法。

这里多说一句,在java中有许多的类跟接口可以实现同样的功能,有些人就感觉这个多此一举。但是认真想想,java为了安全的考虑只支持单继承,但是我们的实际开发中,课程需要同时继承两个类,但是java又是不允许。这里接口就发挥作用了,我们可以继承一个类,同时实现一个或多个接口(对于接口实现的个数java中没有限制)。

下面介绍第一个创建线程的方法,我们还是以例子的形式给出:

public classaaa

{

public static void main(String[] args)

{

System.out.println(Thread.currentThread().getName());

MyThread mt = new MyThread();//创建MyThread类的一个实例,并把它赋给mt

mt.start();//启动线程

}

}

class MyThreadextendsThread

{

public void run()

{

System.out.println(Thread.currentThread().getName());

}

}

上面的例子显示了创建线程的第一方法,多说一句,有时候我们需要在启动线程的时候,去做一些别的工作,这些工作不是我们在创建对象的时候做的,我们可以重写Thread类的start()方法,就像下面一样

public void start(){

自己想要做的工作

Super.start();

}

下面我们介绍第二种创建线程的方法,还是以例子的形式给出:

public classaaa

{

public static void main(String[] args)

{

System.out.println(Thread.currentThread().getName());

MyThread mt = new MyThread();//创建MyThread类的一个实例,并把它赋给mt

Thread t = new Thread(mt);//创建一个Thread类的对象,并且将我们实现了run()方法的MyThread类的对象的实例mt作为参数传入

t.start();//启动线程

}

}

class MyThreadimplementsRunnable

{

public void run()

{System.out.println(Thread.currentThread().getName());}

}//main

Thread-0

在我实现runnable接口创建线程的时候,我们必须将我们自己写的类的实例作为参数传给一个Thread类的对象,然后在调用该对象的start()方法。

这里简单的介绍了一下,希望对大家有帮助,如果有错或者不妥当的地方希望指出。

分享到:
评论

相关推荐

    java多线程ppt

    java多线程PPT 多线程基本概念 创建线程的方式 线程的挂起与唤醒 多线程问题

    Java多线程编程总结

    Java线程:创建与启动 Java线程:线程栈模型与线程的变量 Java线程:线程状态的转换 Java线程:线程的同步与锁 Java线程:线程的交互 Java线程:线程的调度-休眠 Java线程:线程的调度-优先级 Java线程:线程...

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

    Java多线程机制 9.1 Java中的线程 9.2 Thread的子类创建线程 9.3 使用Runable接口 9.4 线程的常用方法 9.5 GUI线程 9.6 线程同步 9.7 在同步方法中使用wait()、notify 和notifyAll()方法 9.8 挂起、恢复和终止线程 ...

    java多线程笔记

    Java线程:创建与启动 7 Java线程:线程名称的设定及获取 10 Java线程:线程栈模型与线程的变量 12 Java线程:线程的调度-休眠 13 Java线程:线程的调度-优先级 16 Java线程:线程的调度-让步 19 Java线程:线程的...

    java多线程编程总结

    详细的讲述了多线程的各种用法 Java线程:概念与原理 Java线程:创建与启动 Java线程:线程栈模型与线程的变量 Java线程:线程状态的转换 Java线程:线程的同步与锁 Java线程:线程的交互 Java线程:线程的调度-休眠...

    java多线程小程序实例

    java多线程小程序实例 java多线程小程序实例

    java多线程代码案例(创建线程,主线程,线程优先级,线程组,线程同步,线程间的通信)

    java多线程知识点,源代码案例,代码案例中包括如何创建线程,主线程,线程优先级,线程组,线程同步,死锁,线程间的通信知识点

    java多线程编程 在主线程main中创建两个子线程

    自己学着编写的一个JAVA多线程程序,该程序实现的功能是:在主线程main中创建两个子线程,A和B,线程A先运行,再运行B线程,当两个子线程都运行完毕后,才运行主线程,并最终结束整个程序的运行。 希望该程序对初学...

    Java多线程.pdf

    Java多线程复习笔记,包括线程创建,关键字讲解,线程池等等。

    java 多线程设计模式 进程详解

    《JAVA多线程设计模式》PDF 下载 《Java线程 高清晰中文第二版》中文第二版(PDF) 前言 第一章 线程简介 Java术语 线程概述 为什么要使用线程? 总结 第二章 Java线程API 通过Thread类创建线程 使用Runable接口...

    JAVA的多线程使用讲解

    JAVA多线程使用讲解,如何创建线程,讲解如何使用多线程,以及线程的等待与唤醒。 JAVA多线程使用讲解,如何创建线程,讲解如何使用多线程,以及线程的等待与唤醒。 JAVA多线程使用讲解,如何创建线程,讲解如何使用...

    java多线程示例

    Java中的多线程有三种实现方式: 1.继承Thread类,重写run方法。Thread本质上也是一个实现了Runnable的实例,他代表一个线程的实例,并且启动线程的唯一方法就是通过Thread类的start方法。 2.实现Runnable接口,并...

    Java多线程网络爬虫(时光网为例)源码

    Java多线程网络爬虫(时光网为例)源码,为maven创建,有不明白请看我的博客介绍;转载请用连接注明出处。近期有人,将本人博客直接复制上传到百度文科等平台,不尊重个人努力成果。

    java多线程机制 详解

    了解Java的多线程机制 掌握创建线程的两个方法 熟悉线程的常用方法 掌握线程同步的意义

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

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

    Java多线程爬取网页

    适合:简单地获取纯文字网页的内容。需要创建子线程or修改爬取网页请在testpc.java中修改,webpc用于获取指定网页内容,runthread用于创建子线程爬虫,testpc则是主线程,用于管理子线程的创建、运行与等待。

    java多线程服务器

    一个进程可以创建多个线程,线程与线程间的通信方式比较容易。本设计主要是编写一个多线程的网络通信程序,不同的线程处理不同类型的消息,比如有专门处理TCP的线程、专门处理UDP消息的线程等。

    Java多线程-创建多线程的基本方式一:继承Thread类

    Java多线程--创建多线程的基本方式一:继承Thread类

Global site tag (gtag.js) - Google Analytics