JAVA learning diary: thread (3)

The main content learned today:

1.获取线程相关信息
2.线程的优先级
3.线程的串行
4.线程休眠

Get thread-related information:

	Thread类中提供了一个名为currentThread()的静态方法。
	将这个方法写入某个线程就可以获得该线程的对象的引用。
	getName()方法可以用来获得线程对象的名称。

The priority of the thread:

	优先级顾名思义谁的优先级高就先调用谁。
	我们用数字1~10来表示优先级。
	主线程的缺省优先级默认是5,子线程的优先级与父线程有相同的优先级。
	getPriority()获得当前线程对象的优先级。
	setPriority()设置当前线程对象的优先级。
	
	优先级的静态整型常量:
	Thread.MIN_PRIORITY; 优先级为1
	Thread.NORM_PRIORITY; 优先级为5
	Thread.MAX_PRIORITY; 优先级为10

Serial of threads:

	就像串联电路一样,一个线程需要前一个线程运行完毕的结果才能运行时,就出现了了线程串行化这种东西。
	join()方法可以使调用它的线程先执行完毕。
	线程串行相关方法:
	public final void join()
	public final void join(long millis)
	public final void join(long millis, int nonas)

Thread sleep:

休眠方法有:
	public static void sleep(long millis)
	public static void sleep(long millis, int nanos)
	
sleep()方法提供的暂停时间不够精确,要精确一点的话用上面第二种方法。

ThreadTest02 class (test to obtain thread information, priority):

package LessonForThread03;

class Thread01 extends Thread
{
    
    
	public void run()
	{
    
    
		Thread t1 = Thread.currentThread();
		t1.setName("ZLM");
		System.out.println("Thread's Name:"+t1.getName()+"  Thread's ID:"
				+t1.getId()+"  Thread's priority:"+t1.getPriority());
	}
}

class Thread02 implements Runnable
{
    
    
	@Override
	public void run() 
	{
    
    
		Thread t2 = Thread.currentThread();
		System.out.println("Thread's Name:"+t2.getName()+"  Thread's ID:"
				+t2.getId()+"  Thread's priority:"+t2.getPriority());
	}
}

public class ThreadTest02 
{
    
    
	public static void main(String[] args)
	{
    
    
		Thread main_thread = Thread.currentThread();
		System.out.println("Thread's Name:"+main_thread.getName()+"  Thread's ID:"
							+main_thread.getId()+"  Thread's priority:"+main_thread.getPriority());
//---------------------------------------------------------------------------------------------------		
		Thread01 t11 = new Thread01();
		t11.setPriority(Thread.MAX_PRIORITY);
		t11.start();
//---------------------------------------------------------------------------------------------------
		Thread02 t21 = new Thread02();
		Thread t1 = new Thread(t21,"ZYH");
		t1.start();
//---------------------------------------------------------------------------------------------------
	}
}

ThreadTest03 class (test serial and hibernation):

package LessonForThread03;

class MyThread01 extends Thread
{
    
    
	@Override
	public void run()
	{
    
    
		int i;
		for (i=0; i<10; i++)
		{
    
    
			try 
			{
    
    
				Thread.sleep(200);
				System.out.println("This is MyThread01 run number ->" + i);
			} catch (InterruptedException e)
				{
    
    
					e.printStackTrace();
				}
		}
	}
}

class MyThread02 implements Runnable
{
    
    
	@Override
	public void run()
	{
    
    
		int i;
		for (i=0; i<10; i++)
		{
    
    
			try 
			{
    
    
				Thread.sleep(200);
				System.out.println("This is MyThread02 run number ->" + i);
			} catch (InterruptedException e)
				{
    
    
					e.printStackTrace();
				}
		}
	}
}

public class ThreadTest03 
{
    
    
	public static void main(String[] args) 
	{
    
    
		int i;
		
		MyThread01 mt1 = new MyThread01();
		try
		{
    
    
			mt1.start();
			mt1.join();//先执行完MyThread01线程再去执行别的线程。
		} catch (InterruptedException e1) 
			{
    
    
				e1.printStackTrace();
			}
//----------------------------------------------------------------------------------		
		MyThread02 mt2 = new MyThread02();
		Thread t1 = new Thread(mt2);
		try 
		{
    
    
			t1.start();
			t1.join();
		} catch (InterruptedException e1)
			{
    
    
				e1.printStackTrace();
			}
//----------------------------------------------------------------------------------		
		for (i=0; i<10; i++)
		{
    
    
			try 
			{
    
    
				Thread.sleep(200);
				System.out.println("This is MainThread run number ->" + i);
			} catch (InterruptedException e)
				{
    
    
					e.printStackTrace();
				}
		}
	}
}

本篇部分文字来源于:
	咕嘟咖啡杨海滨老师 — 《java编程语言高级特性》
	在这里十分感谢老师能够给我带来学习的激情。

2020.10.21
可以转载我的学习日记但请注明出处,谢谢。
本文章是本人学习笔记,不进行任何商用!也请别拿去商用!只为记录本人学习历程。
毕	

Guess you like

Origin blog.csdn.net/SIESTA030/article/details/109209466