java多线程编程之使用thread类创建线程

在Java中创建线程有两种方法:使用Thread类和使用Runnable接口。在使用Runnable接口时需要建立一个Thread实例

在Java中创建线程有两种方法:使用Thread类和使用Runnable接口。在使用Runnable接口时需要建立一个Thread实例。因此,无论是通过Thread类还是Runnable接口建立线程,都必须建立Thread类或它的子类的实例。Thread类的构造方法被重载了八次,构造方法如下:

复制代码 代码如下:

public Thread( );

public Thread(Runnable target);

public Thread(String name);

public Thread(Runnable target, String name);

public Thread(ThreadGroup group, Runnable target);

public Thread(ThreadGroup group, String name);

public Thread(ThreadGroup group, Runnable target, String name);

public Thread(ThreadGroup group, Runnable target, String name, long stackSize);

Runnable target

实现了Runnable接口的类的实例。要注意的是Thread类也实现了Runnable接口,因此,从Thread类继承的类的实例也可以作为target传入这个构造方法

String name

线程的名子。这个名子可以在建立Thread实例后通过Thread类的setName方法设置。如果不设置线程的名子,线程就使用认的线程名:Thread-N,N是线程建立的顺序,是一个不重复的正整数。

ThreadGroup group

当前建立的线程所属的线程组。如果不指定线程组,所有的线程都被加到一个认的线程组中。关于线程组的细节将在后面的章节详细讨论。

long stackSize

线程栈的大小,这个值一般是cpu页面的整数倍。如x86的页面大小是4KB。在x86平台下,认的线程栈大小是12KB。

一个普通的java类只要从Thread类继承,就可以成为一个线程类。并可通过Thread类的start方法来执行线程代码。虽然Thread类的子类可以直接实例化,但在子类中必须要覆盖Thread类的run方法才能真正运行线程的代码。下面的代码给出了一个使用Thread类建立线程的例子:

复制代码 代码如下:

package mythread; 

public class Thread1 extends Thread

{

public void run()

{

System.out.println(this.getName());

}

public static void main(String[] args)

{

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

Thread1 thread1 = new Thread1();

Thread1 thread2 = new Thread1 ();

thread1.start();

thread2.start();

}

}

上面的代码建立了两个线程:thread1和thread2。上述代码中的005至行是Thread1类的run方法。当在014和015行调用start方法时,系统会自动调用run方法。在007行使用this.getName()输出了当前线程的名字,由于在建立线程时并未指定线程名,因此,所输出的线程名是系统的认值,也就是Thread-n的形式。在011行输出了主线程的线程名。

上面代码的运行结果如下:

main

Thread-0

Thread-1

从上面的输出结果可以看出,第一行输出的main是主线程的名子。后面的Thread-1和Thread-2分别是thread1和thread2的输出结果。

注意:任何一个Java程序都必须有一个主线程。一般这个主线程的名子为main。只有在程序中建立另外的线程,才能算是真正的多线程程序。也就是说,多线程程序必须拥有一个以上的线程。

Thread类有一个重载构造方法可以设置线程名。除了使用构造方法在建立线程时设置线程名,还可以使用Thread类的setName方法修改线程名。要想通过Thread类的构造方法来设置线程名,必须在Thread的子类中使用Thread类的public Thread(String name)构造方法,因此,必须在Thread的子类中也添加一个用于传入线程名的构造方法。下面的代码给出了一个设置线程名的例子:

复制代码 代码如下:

package mythread;

public class Thread2 extends Thread

{

private String who;public void run()

{

System.out.println(who + ":" + this.getName());

}

public Thread2(String who)

{

super();

this.who = who;

}

public Thread2(String who, String name)

{

super(name);

this.who = who;

}

public static void main(String[] args)

{

Thread2 thread1 = new Thread2 ("thread1", "MyThread1");

Thread2 thread2 = new Thread2 ("thread2");

Thread2 thread3 = new Thread2 ("thread3");

thread2.setName("MyThread2");

thread1.start();

thread2.start();

thread3.start();

}

上一篇:Struts2配置文件中使用通配符的方法(三种形式)下一篇:Java生产者消费者模式实例分析 热门搜索

java创建线程锁 

创建线程 

线程创建 

java多线程 

多线程编程 

相关文章

java多线程编程之使用thread类创建线程

2021-10-06阅读(2823)评论(0)推荐()

在Java中创建线程有两种方法:使用Thread类和使用Runnable接口。在使用Runnable接口时需要建立一个Thread实例

Java使用Thread创建多线程并启动操作示例

2021-10-07阅读(3697)评论(0)推荐()

这篇文章主要介绍了Java使用Thread创建多线程并启动操作,结合实例形式分析了Java基于Thread类的多线程定义与启动简单操作技巧,需要的朋友可以参考下

java线程之用Thread类创建线程的方法

2021-10-18阅读(7172)评论(0)推荐()

本篇文章介绍了,Thread类创建线程的方法。需要的朋友参考下

java多线程编程之使用runnable接口创建线程

2021-11-05阅读(3883)评论(0)推荐()

实现Runnable接口的类必须使用Thread类的实例才能创建线程,通过Runnable接口创建线程分为以下两步

Java继承Thread类创建线程类示例

2021-10-07阅读(9623)评论(0)推荐()

这篇文章主要介绍了Java继承Thread类创建线程类,结合实例形式分析了java线程操作相关使用技巧与注意事项,需要的朋友可以参考下

Java多线程之线程的创建

2021-10-12阅读(7674)评论(0)推荐()

这篇文章主要介绍了Java多线程之线程的创建,文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,需要的朋友可以参考下

java 线程创建多线程详解

2021-09-19阅读(4079)评论(0)推荐()

本文主要讲解java 线程创建多线程的知识,这里对java线程的创建做了详细介绍,并附简单示例代码,有兴趣的小伙伴可以参考下

取消

有人回复邮件通知

提交评论

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...