线程和进程
Posted 秋水潺流
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线程和进程相关的知识,希望对你有一定的参考价值。
今天看了几个关于线程和进程的视频,不是很理解,这里做一下重点知识的整理,方便后续复习和理解
1.简单的概念理解:
1)进程:一个执行中的程序,每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元;
2)线程:进程中一个独立的控制单元,线程在控制着进程的执行,一个进程中至少要有一个线程(书上的概念:是进程的一个实体,是被独立调度和分配的基本单位);
2.多线程的实现:
在java中对于多线程实现一定要有一个线程主类,这个线程主类的要求是:
1)继承Thread父类;
2)实现Runnable接口;
3.继承Thread类实现多线程(在java.lang包里面的Thread类):
1)步骤(所有的线程都是交替执行,本身没有固定的执行顺序):
>>定义类继承Thread;
>>复写Thread类中的run方法;
>>调用线程中的start()方法(该方法的两个作用:启动线程,调用run方法);
注解:为何要调用start()方法而不可以直接调用run()方法,因为所有的多线程的执行一定是并发的,在同一个时间段上会有多个线程交替执行,所以为了达到目的,绝对不能够直接调用run()方法,而是应该调用Thread类中的start()方法启动多线程;
注解:在调用start()方法里面发现有调用start0()方法,而start0()方法使用了native关键字定义,这个关键字调用本机的操作系统函数,由于线程的启动需要牵扯到操作系统中资源的分配,所以具体的线程启动需要根据不同的操作系统的实现,而JVM相当于根据系统中定义的start0()方法来根据不同的操作系统进行该方法的实现。(有点绕,不好理解)
4.实现Runnable接口:
是函数式的接口(@FunctionalInterface),可以利用Lamda表达式完成。(不知道是什么鬼?)
Thread类的构造方法:public Thread(Runnable target),所以可以根据new Thread(mt1).start() 来调用start()函数,从而启动多线程。
学习视频:黑马程序员_毕向东_Java基础视频教程;极限程序员java入门到精通;java学习宝典(书籍)
以上是关于线程和进程的主要内容,如果未能解决你的问题,请参考以下文章