Java中的多线程(Thread)

Thread

  • 线程 是程序中的执行线程。Java 虚拟机允许应用程序 并发 地运行多个执行线程。

  • 创建新执行线程有两种方法。

  • 1:一种方法是将类声明为 Thread 的子类。该子类应重写 Thread 类的 run 方法。

  • 2:创建线程的另一种方法是声明实现 Runnable 接口的类。该类然后实现 run 方法。

  • 线程的步骤

  • 1:继承Thread类

  • 2: 重写run方法

  • 3:创建线程对象

  • 4:启动线程:start()
    注意:start和run的区别?
    程序员调用start方法,然后通知JVM你去调用run方法,
    程序员不要手动调用run方法,否则就会变成单线程的执行模式

  • 注意:多线程中,线程的执行顺序和代码的前后顺序没关系,java中线程遵循抢占模式,随机的,程序员无法保证哪个线程先启动

  • 多线程可以提高CPU的使用率

  • 注意:运行在run里的程序,是多线程代码

  • 常用方法

  • 1:start 启动

  • 2:getName 获取名称

  • 3:setName 设置名称

  • 4:getPriority 获取优先级

  • MAX_PRIORITY 10 最高

  • MIN_PRIORITY 1 最低

  • NORM_PRIORITY 5 默认

  • 5:setPriority 设置优先级

  • 注意:优先级不是绝对的,优先级高的,只是在抢夺CPU执行权的概率会提高

  • 6:Thread.currentThread 获取当前线程

  • 7:isAlive() 判断线程是否存活
    线程有2中死亡方式
    1:正常死亡 :程序执行完毕,退出run方法
    2:意外死亡:程序意外终止,退出run方法

  • 注意:一个线程不可以多次调用start方法

public static void main(String[] args) {
		//3:创建2个线程对象
		/*for(int i = 1;i<=10000;i++){
			
			
		m1.start();
	}*/
	
	/*MyThread m1 = new MyThread();
	MyThread m2 = new MyThread();
	MyThread m3 = new MyThread();
	
	
	//设置线程名称
	m1.setName("线程1");
	m2.setName("线程2");
	m3.setName("线程3");
	
	//获取线程的优先级
	
	System.out.println(m1.getPriority());
	System.out.println(m2.getPriority());
	System.out.println(m3.getPriority());
	
	//设置优先级
	m1.setPriority(10);
	m2.setPriority(1);
	m3.setPriority(5);
	//4:启动线程
	m1.start();
	
	//判断线程是否还存活
	System.out.println(m1.isAlive());
	
	m2.start();
	m3.start();
	*/
	
	
	//获取当前main线程
	/*Thread currentThread = Thread.currentThread();
	System.out.println(currentThread);
	//获取线程名称
	System.out.println(currentThread.getName());
	*/
	
	
	MyThread m1 = new MyThread();
	m1.start();
	/*m1.start();
	m1.start();*/
	
	
}

猜你喜欢

转载自blog.csdn.net/qq_44013790/article/details/85634594