Java学习笔记--线程day01
线程的概念:一个线程是进程的顺序执行流;
同类的多个线程共享一块内存空间和一组系统资源,线程本身有一个供程序执行时的堆栈。线程在切换时负荷小,因此,线程也被称为轻负荷进程。一个进程中可以有多个线程。
进程与线程的区别:
线程的划分程度小于进程,使得多线程程序并发性高。
进程在执行过程中有独立的内存单元,而多个线程共享内存,极大的提高了程序的运行效率。
执行过程中两者的区别在于:每个独立的线程有一个程序运行的入口、顺序执行序列、和程序的出口。
线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
从逻辑角度来看:多线程的意义在于在一个应用程序中,有多个执行部分可以同时执行,但操作系统并没有将多个线程看作多个独立的应用来实现进程的调度和管理以及资源分配。
线程的创建与使用:
创建线程方式: 1.可以通过继承Thread类来创建线程
2.可以通过实现runnable接口来创建线程
3.匿名内部类的方式
1:
*class MyThread01 extends Thread{
*public void run(){ //这个方法的方法体就是线程要干的事情,下同
*}
*}
2:
*class MyThread02 implements Runnable{ * @Override
* public void run() { //必须重写继承的接口中的抽象方法
* // TODO Auto-generated method stub
* }
3: *Thread t3=new Thread(){
* public void run(){
*
* }
*};
运行线程:
1: *Thread t1=new MyThread01(); *t1.start();
2: *Runnable t2=new MyThread03(); *t2.start();
3: *t3.start();
线程的优先级与设置线程的优先级:
setPriority(int i):分为十个级别(1-10),1最高,10最低;级别越高,获取时间片的概率越大。 1:t1.setPriority(i);
2:t2.setPriority(i);
3:t3.setPriority(i)
守护线程与设置守护线程: 守护线程在本质上与普通线程没有区别,只需通过Thread提供的方法来设置即可: void setDaemon(boolean) 当参数为true时该线程为守护线程
守护线程的特点: 当进程中只剩下守护线程时,所有守护线程强制终止。
sleep(long ms)方法: 使当前的线程进入阻塞状态,持续ms毫秒,之后线程会进入Runnable状态,等待重新分配时间片。 该方法需要抛出一个异常,所以需要用try{}catch(){}捕获这个异常。
相关文章