本节主要是从实现Runnable接口来实现多线程
class MultiThread
{
public static void main(String[] args)
{
MyThread myThread = new MyThread();
//将类对象作为参数传给Thread,然后再调用Thread的start()
new Thread(myThread).start();
//设置为后台线程
//myThread.setDaemon(true);
//设置优先级
//myThread.setPriority(Thread.MAX_PRIORITY);
//myThread.start();
int index = 1;
while(true)
{
//if(index++ == 1000)
//break;
//获取当前的线程并且获取它的名字
System.out.println("main方法所在的线程的名字:" + Thread.currentThread().getName());
}
}
}
class MyThread implements Runnable//extends Thread
{
//run方法是线程的入口函数
public void run()
{
while(true)
{
System.out.println(Thread.currentThread().getName());
//将当前线程暂停
//yield();
}
}
}
总结:通常不需要修改线程类中除了run方法外的方法就使用实现Runnable方法(方法二)来实现多线程程序。
使用实现Runnable方法好处有两条:
- 如果你的MyThread类已经继承了一个类,那么java中不允许多继承,这样让你的MyThread实现一个Runnable接口正好啊。
- 如果同一个对象创建多线程那么共享一个数据成员index
class MultiThread
{
public static void main(String[] args)
{
MyThread myThread = new MyThread();
//如果创建多个线程但是是同一个对象,那么他们共享一个index
new Thread(myThread).start();
new Thread(myThread).start();
new Thread(myThread).start();
new Thread(myThread).start();
new Thread(myThread).start();
//设置为后台线程
//myThread.setDaemon(true);
//设置优先级
//myThread.setPriority(Thread.MAX_PRIORITY);
//myThread.start();
//int index = 1;
while(true)
{
//if(index++ == 1000)
//break;
//获取当前的线程并且获取它的名字
System.out.println("main方法所在的线程的名字:" + Thread.currentThread().getName());
}
}
}
class MyThread implements Runnable//extends Thread
{
int index = 0;
//run方法是线程的入口函数
public void run()
{
while(true)
{
System.out.println(Thread.currentThread().getName() + ":" + index++);
//将当前线程暂停
//yield();
}
}
}