java怎么创建一个线程
Java线程类也是一个object类,它的实例都继世桐竖承自java.lang.Thread或其子类。 可以用如下方式用java中创建一个线程:
Tread thread = new Thread();
执行该线程可以调用该线程的start()方法:
thread.start();
编写线程运行时执行的代码有两种方式:一种是创建Thread子类的一个实例并重写run方法,第二种是创建类的时候实现Runnable接口。接下轮侍来我们会具体讲解这两种方法:
创建Thread的子类
创建Thread子类的一个实例并重写run方法,run方法会在调用start()方法之后被执行。例子如下:
public class MyThread extends Thread {
public void run(){
System.out.println("MyThread running");
}
}
可以用如下方式创建并运行上述Thread子类
MyThread myThread = new MyThread();
myTread.start();
一旦线程启动后start方法就会立即返回,而不会等待到run方法执行完毕才返回。就好像run方法是在另外一个cpu上执行一样。当run方法执行后搜大,将会打印出字符串MyThread running。
实现Runnable接口
第二种编写线程执行代码的方式是新建一个实现了java.lang.Runnable接口的类的实例,实例中的方法可以被线程调用。下面给出例子:
public class MyRunnable implements Runnable {
public void run(){
System.out.println("MyRunnable running");
}
}
为了使线程能够执行run()方法,需要在Thread类的构造函数中传入 MyRunnable的实例对象。示例如下:
Thread thread = new Thread(new MyRunnable());
thread.start();
当线程运行时,它将会调用实现了Runnable接口的run方法。上例中将会打印出”MyRunnable running”。
2018-01-29 · 百度知道合伙人官方认证企业
Java线程类也是一个object类,它的实例则纤都继承自java.lang.Thread或其子类
创建线程
Tread thread = new Thread();
运行线程
thread.start();
运用场景
创建Thread的子类
public class MyThread extends Thread {
晌盯明public void run(){
System.out.println("MyThread running");
}
}
MyThread myThread = new MyThread();
myTread.start();
实现Runnable接口
public class MyRunnable implements Runnable {
public void run(){
System.out.println("MyRunnable running");
}
}
Thread thread = new 宴告Thread(new MyRunnable());
thread.start();
2018-01-29 · 百度知道合伙人官方认证企业
方法如下:
/**
* 常用的有3中方法,供参考
吵盯*
* @author qd
*
*/
public class MyThread extends Thread {
@Override
public void run() {
System.out.println("线程已启动。。。");
}
public static void main(String[] args) {
MyThread myThread = new MyThread();
做颂 // 调用start方法启动线程
myThread.start();
MyThread1 myThread1 = new MyThread1();
Thread thread = new Thread(myThread1);
// 调用start方法启动线程
thread.start();
}
}
/**
* 方法二:实现Runnable接口
*
* @author qd
*
*/
class MyThread1 implements Runnable {
@Override
public void run() {
System.out.println("run方法里面编写业务代码");
}
}
/**
* 方法三:实现Callable<T>接口 优点:可以传参数,有返回值类型
*
* @author qd
*
*/
class MyThread2 implements Callable<Integer> {
@Override
public Integer call() throws Exception {
return 纯碰郑null;
}
}
运行效果: