zoukankan      html  css  js  c++  java
  • 线程和进程

    今天看了几个关于线程和进程的视频,不是很理解,这里做一下重点知识的整理,方便后续复习和理解

    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学习宝典(书籍)

  • 相关阅读:
    原创 C++应用程序在Windows下的编译、链接(四)动态链接
    IE浏览器 json异常
    Linux系统github使用
    Mysql in 排序
    转 php四种基础算法:冒泡,选择,插入和快速排序法
    转 mysql取今天,明天,工作日,周末,本周,下周,下月数据
    下载远程图片到本地
    转 PHP中SQL_CALC_FOUND_ROWS与FOUND_ROWS()和count()
    星级点评
    21个值得收藏的Javascript技巧
  • 原文地址:https://www.cnblogs.com/chenshaoping/p/5618744.html
Copyright © 2011-2022 走看看