Java线程的实现及线程的一些方法

Java中线程的实现方式

方式一、继承Thread
使用步骤:
1.定义类继承Thread
2.重写run方法
3.把新线程要做的事写在run方法中
4.创建线程对象
5.开启新线程, 内部会自动执行run方法

//方式一、继承Thread
//使用步骤:
//1.定义类继承Thread
//2.重写run方法
//3.把新线程要做的事写在run方法中
//4.创建线程对象
//5.开启新线程, 内部会自动执行run方法
class MyThread extends Thread {

	@Override
	public void run() {

		System.out.println("我的线程:" + Thread.currentThread());
	}

}
class  Main(){
	public static void main(String[] args) {
	MyThread myThread = new MyThread();

		myThread.start();
	}
}

匿名内部类方式

 new   Thread() {
			public void run() {
				for(int i=0;i<10;i++)
				{
					System.out.println("你的线程:" + Thread.currentThread());
					try {
						//子线程休眠
						Thread.sleep(1000);
					} catch (InterruptedException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
				
			};
 }.start();

方式二、实现Runnable接口
实现步骤:
1.定义类实现Runnable接口
2.实现run方法
3.把新线程要做的事写在run方法中
4.创建自定义的Runnable的子类对象,创建Thread对象传入Runnable
5.调用start()开启新线程, 内部会自动调用Runnable的run()方法

//方式二、实现Runnable接口
//实现步骤:
//1.定义类实现Runnable接口
//2.实现run方法
//3.把新线程要做的事写在run方法中
//4.创建自定义的Runnable的子类对象,创建Thread对象传入Runnable
//5.调用start()开启新线程, 内部会自动调用Runnable的run()方法

class Task implements Runnable {

	@Override
	public void run() {

		System.out.println("任务:" + Thread.currentThread());
	}

}
class  Main(){
	public static void main(String[] args) {
	Task Task = new Task();

		Thread thread = new Thread(Task);
		thread.start();
	}
}

匿名内部类方式

new  Thread( new  Runnable() {
			
			@Override
			public void run() {
             System.out.println("他的线程:"+Thread.currentThread());
           }
		}) {
			
		}.start();
	

线程的一些方法

获取线程名字和设置名字
通过Thread的getName()方法获取线程对象的名字
通过setName(String)方法可以设置线程对象的名字
通过构造函数可以传入String类型的名字
每个线程系统都会默认分配个名字,主线程:main,子线程thread-0

获取当前线程的对象
Thread.currentThread()方法用于获取当前线程对象
在不同的方法中,获取的线程对象名称是有可能不一样的
在main中获取的是主线程对象
在子线程的run方法中获取的是子线程对象

程休眠(掌握)
Thread.sleep(毫秒), 控制当前线程休眠若干毫秒
1秒= 1000毫秒
1秒 = 1000毫秒* 1000微妙 * 1000纳秒(1000000000 )

守护线程(了解)
setDaemon(), 设置一个线程为守护线程, 该线程不会单独执行, 当其他非守护线程都执行结束后, 自动退出
特点:男守护女,女的死,男的也不想活了

加入线程(了解)
join(), 当前线程暂停, 等待指定的线程执行结束后, 当前线程再继续
join(int), 可以等待指定的毫秒之后继续

线程让出(了解)
yield() 让出cpu

线程优先级
setPriority()设置线程的优先级
默认优先级是5,最小优先级1,最高优先级10
可以设置2,3,4
Thread里面有静态常量

发布了23 篇原创文章 · 获赞 17 · 访问量 1280

猜你喜欢

转载自blog.csdn.net/qq_41587409/article/details/105462959