Java线程的学习笔记

时间:2023-02-26 21:06:46
Java线程的学习笔记:


一、使用Thread创建线程的方法步骤
(1)创建一个新的线程类,实现Thread类;
(2)定义一个线程类的对象,用new关键字完成创建;
(3)利用线程对象启动线程的start()方法;
(4)调用线程的run()方法;
class NewThread extends Thread{
public NewThread(String sName){         //Thread类有Name属性,通过构造函数可传递
super(sName);
}


public void run(){
System.out.println("这是继承Thread类实现的线程。");
}
}
public class UseThread{
public static void main(String args[]){
NewThread ThreadType=new NewThread("继承Thread");
ThreadType.start();
}
}


二:实现Runnable接口
(1)、定义一个实现Runnable接口的类;
(2)、创建一个Runnable的实例,使用new关键字完成;Runnable pRunnable=new NewThread();
(3)、通过实例创建一个Thread类的实例;
(4)、启动start()方法;


class NewThread implements Runnable{
public void run(){                 //Runnable要定义成员变量,然后设置线程的名称
System.out.println("这是一个实现Runnable接口的线程。");
}
}


public class UseThread{
public static void main(String args[]){
Runnable nt = new NewThread();
Thread pThread = new Thread(nt);
pThread.start();
}
}




二:线程的状态
1、创建状态,调用new方法创建一个线程对象后,但是没有调用strat()方法前的状态;
2、可运行状态,当线程执行start()方法之后,线程就转换为可运行状态。此状态说明线程具备了可以运行的条件,但是线程不一定处于运行状态。在单处理器中处理多线程的时候,一个时间点上只能运行一个线程,系统通过调度机制实现在宏观上实现运行线程共享处理器,因此一个线程是否在运行除了处于Runnable状态外,线程的优先级和调度也是因素。
3、不可运行状态,此状态是由于线程被挂起或者发生阻塞,例如对一个线程调用suspend()方法或者wait()方法就可以进入阻塞状态。
4、退出状态,一个线程可以从任何状态中调用stop()方法进入退出状态,线程一旦进入退出状态就不存在了。


三、线程的调度,设置优先级setPriority(int newPriority)


四、线程同步:通过关键字synchonized进行线程的同步,线程同步会降低执行效率,有同步代码块和同步函数两种方式。