2.创建线程方式一_继承Thread类:创建线程有哪四种方式???如何通过继承Thread类来创建线程???Thread常用方法有哪四个???

2.创建线程方式一_继承Thread类:创建线程有哪四种方式???如何通过继承Thread类来创建线程???Thread常用方法有哪四个???

学习:第7遍


1.、创建线程有哪四种方式???

方式一:继承Thread类
方式二:实现Runnable接口
方式三:实现Callable接口
方式四:使用Executors工具类创建线程池


2.如何通过继承Thread类来创建线程???

步骤:
(1). 定义一个类,继承自Thread类,重写run()方法
(2). 创建该类的实例,即创建一个线程
(3).调用start()方法,启动线程(不能直接调用run()方法)


3.Thread常用方法有哪四个???

方法一:thread1 .setName(“线程1”)
作用:给线程设置名字

方法二: thread1.start()
作用: 启动线程,并直接调用run()方法

方法三: Thread.currentThread()
作用:获取当前的线程对象

方法四: thread .getName()
作用:调用getName()获取线程名



/*
 * JVM启动时会创建一个主线程,用来执行main方法
 * 要想实现多线程,需要在主线程中创建新的线程
 * 
 * 实际上,Java程序在运行时至少会启动两个线程:main线程、垃圾回收线程gc
 */
public class TestThread {
	public static void main(String[] args) {

		// 创建线程
		MyThread thread1 = new MyThread(); //自定义线程的默认名称:Thread-编号,编号从0开始
	   /**
		 * 方法:thread1 .setName("线程1")
		 * 作用:给线程设置名字
		 */
		thread1 .setName("线程1");
		/**
		 * 方法:	thread1.start()
		 * 作用:   启动线程,并直接调用run()方法
		 */
		
		thread1.start(); // 线程并不一定立即执行,要获取到CPU时间片才会执行
		
		MyThread thread2 = new MyThread("线程2");
		thread2.start();

       /**
		 * 方法: Thread.currentThread()
		 * 作用:获取当前的线程对象
		 */
		Thread thread = Thread.currentThread(); 
		t.setName("主线程");
		for (int i = 1; i <= 10000; i++) {
			System.out.println(thread .getName()+"------------" + i); //主线程的默认名称就是main
		}
	}
}

class MyThread extends Thread {
	
	public MyThread(){
		
	}
	
	public MyThread(String name){
		super(name); //调用父类的构造方法,指定线程名
	}

	// 在run()方法中编写线程要执行的代码
	@Override
	public void run() {
		for (int i = 1; i <= 10000; i++) {
			System.out.println(getName()+"------------" + i); // 调用getName()获取线程名
		}
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值