一些基础的线程例子
2010-10-11 11:28
246 查看
1.建立线程的方式:继承Thread类和实现Runnable接口。下面这个例子是通过继承类的方式创建线程的。
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至008行是Thread1类的run方法。当在014和015行调用start方法时,系统会自动调用run方法。在007行使用this.getName()输出了当前线程的名字,由于在建立线程时并未指定线程名,因此,所输出的线程名是系统的默认值,也就是Thread-n的形式。在011行输出了主线程的线程名。
下面这个例子是通过实现Runnbale借口建立线程的
public class MyRunnable implements Runnable
{
public void run()
{
System.out.println(Thread.currentThread().getName());
}
public static void main(String[] args)
{
MyRunnable t1 = new MyRunnable();
MyRunnable t2 = new MyRunnable();
Thread thread1 = new Thread(t1, "MyThread1");
Thread thread2 = new Thread(t2);
thread2.setName("MyThread2");
thread1.start();
thread2.start();
}
}
2.为每个线程取名字的方式:Thread类有一个重载构造方法可以设置线程名 和 使用Thread类的setName方法修改线程名。
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();
}
在main方法中建立了三个线程:thread1、thread2和thread3。其中thread1通过构造方法来设置线程名,thread2通过setName方法来修改线程名,thread3未设置线程名。
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至008行是Thread1类的run方法。当在014和015行调用start方法时,系统会自动调用run方法。在007行使用this.getName()输出了当前线程的名字,由于在建立线程时并未指定线程名,因此,所输出的线程名是系统的默认值,也就是Thread-n的形式。在011行输出了主线程的线程名。
下面这个例子是通过实现Runnbale借口建立线程的
public class MyRunnable implements Runnable
{
public void run()
{
System.out.println(Thread.currentThread().getName());
}
public static void main(String[] args)
{
MyRunnable t1 = new MyRunnable();
MyRunnable t2 = new MyRunnable();
Thread thread1 = new Thread(t1, "MyThread1");
Thread thread2 = new Thread(t2);
thread2.setName("MyThread2");
thread1.start();
thread2.start();
}
}
2.为每个线程取名字的方式:Thread类有一个重载构造方法可以设置线程名 和 使用Thread类的setName方法修改线程名。
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();
}
在main方法中建立了三个线程:thread1、thread2和thread3。其中thread1通过构造方法来设置线程名,thread2通过setName方法来修改线程名,thread3未设置线程名。
相关文章推荐
- hash-table基础以及一些运用例子
- 汇编程序的基础与一些例子
- JQuery基础 学习的一些例子以及手册
- java线程总结1--线程的一些概念基础以及线程状态
- AJAX一些基础知识和小例子讲解
- Servlet的一些基础知识和demo小例子
- 多线程的深入(一,线程的一些基础知识简单回顾)
- java中一些性能优化的例子(基础)
- 最基础的一些入门级Android源码例子整理
- R语言最基础的入门知识 一些常用操作和例子
- java线程基础(一些常见多线程用法)
- Go语言基础学习五-一些数值操作的简单例子
- oracle 中自学做过的一些例子,方便自学的人,只是一些基础的题目
- 黑马程序员——Java基础---线程的另一个总结(6)--线程读写锁,缓存小例子
- java基础入门-for循环的一些特殊例子
- java基础入门-for循环的一些特殊例子
- Java并发编程(二)--java线程安全的一些基础
- java基础入门-for循环的一些特殊例子
- Python基础语法--一些例子
- JAVA基础 day12 线程间通信 多线程一些常用方法