java线程

Class Thread
Thread或其子类都属于线程
Thread类的重要方法

public void run();//凡是放在run方法里的代码都是以线程身份运行的,线程结束的关键就是run()中的代码是否执行完。默认为空
start();//只有调用start()方法才会作为线程并发执行run()
//所以要将线程填在run中,调用start()方法执行,如果直接调用run()方法,就不会作为线程身份执行,也不是并发执行,而是串行的。
getName();//获取线程名字
sleep();//执行完一个线程后”睡“多久

调用run与start方法比较
main()本身就是一个线程(主线程),如果调用run方法,执行main就会产生一个Thread对象,接下来就会执行run,然后结束,相当于调用了一个函数。并没有创建新的线程。
而如果调用start,就会创建一个新的线程,再运行run中的线程,两个线程并发执行。
创建线程的两种方法

//方法一:从Thread类继承,重写run()方法
//创建线程
public class MyThread extends Thread{//定义自己的Thread类从Thread类继承
	@Override
	public void run(){     //重写run()方法
		for(int i=-1;i>=-10;i--)
		{
			System.out.prinrln(""+getName()+" "+i);//打印线程名以及数字
			try{
			sleep(100);//让这个线程睡0.1s,将cpu让出来,使得两个线程来回切换
			}catch(Exception e){ }
		}
	}
}
public static void main(String []args){
	new Mythread().start();//线程0
	new Mythread().start();//线程1
}//加上main一共三个线程
//方法二:实现Runnable接口,重写run()方法(更加常见)
public class MyThread
implements Runnable
{
	@Override
	public void run(){
		for(int i=-1;i>=-10;i--){
			System.out.println(" "+Thread.currentThread().getName()+" "+i);//与上面方法不
			同,他没有继承Thread,所以不能直接调用getName()方法
		}
	}
	public static void main(String []args){
	new Thread(new MyThread()).start();
	new Thread(new MyThread()).start();
	}
]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

K_K_Chen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值