java 如何开启一个线程 创建线程类

版权声明:博客知识产权来源命运的信徒,切勿侵权 https://blog.csdn.net/qq_37591637/article/details/89190812

为什么要开线程?

Java程序执行是从main入口进入,然后根据main函数里面的程序的顺序从上到下执行,执行到最后,就关闭了程序!

如果我们想让程序一直开着,接收数据或者发送数据的话,就需要用到线程!


开启单个线程的两种方法

 查询java的api文档

Thread类就是线程类,new Thread().start();就是开启线程

这个类之所以能够具备这样的方法,不是特有的,是因为它实现了runnable接口,runnable接口有一个抽象方法run();

由上而知,我们想要创建一个线程类,有两个方法

方法一、实现runnable接口

方法二、继承Thread类

扫描二维码关注公众号,回复: 5876566 查看本文章

示例如下

继承Thread类

package cn.com.server;
public class Test extends Thread{
	//如果需要传入参数进来的话,就重载构造方法
	 private int i;
	public Test(int y){
		i=y;
	}
	/*开单线程和一般程序执行是没有多大区别的,多线程才可以看出区别
	 * 误区:开线程不是说程序会一直执行,只是让多个程序并发,而不是按照程序执行先后来
	 * 一般程序是从上到下执行,执行完上面的代码再执行下面的代码
	 * 
	 * 
	 */

	//重写run方法
	  public void run() {
		  i++;
	      System.out.println("当前i:"+i);
	    }
}

测试类

package cn.com.server;

public class TT {
	public static void main(String[] args) {
		new Test(1).start();
	}
}

实现 Runnable接口

package cn.com.server;
public class RunThread  implements Runnable{
	/*author:命运的信徒
	 * arm:实现runable接口
	 * date:2019/4/1
	 */
//	重载构造函数的目的,是为了方便传递参数过去,如果不需要传参,可以不写,默认的构造函数是无参的
	int i;
	public RunThread(int i) {
		// TODO Auto-generated constructor stub
		this.i=i;
	}
//重写方法
	public void run() {
	i++;
	System.out.println("i的值是:"+i);
		
	}

	public static void main(String[] args) {
		RunThread rn=new RunThread(2);
		//由于.start()方法是Thread类特有的方法,RunThread是runnable的实现类,Thread也是runnable的实现类,
		new Thread(rn).start();
	}

}

疑问

对象.start()就是启动该对象线程,去调用run()方法,如果直接去调用run()不也行么?

.strat()是开启真正的线程,调用run()方法,可以不用等run()方法执行结束以后,往下执行

.run()就是调用方法,普通的方法,必须要等run里面的程序执行结束以后,再执行其他的,不是真正的线程!



 

猜你喜欢

转载自blog.csdn.net/qq_37591637/article/details/89190812