java线程基础总结(适用于线程小白)

本文章目录

一、线程的引入和概述:

       并行和并发的理解

       什么是进程和线程

       多线程的优势

       java操作进程小例子

二、创建和启动线程:

       继承Thread类

       实现Runnable接口

       使用匿名内部类

       两种方式对比

三、线程同步:

       同步代码块

       同步方法

       单例模式

       同步锁(Lock)

=======================================================================================

一、线程的引入和概述:

1、并行和并发的理解

   并行:指两个或多个事件在同一时刻点发生;
   并发:指两个或多个事件在同一时间段内发生;

2、什么是进程和线程

     进程是指一个内存中运行的应用程序。每个应用程序都有自己的一块内存空间(内存空间是用来存放数据的),一个应用程序可以同时启用多个进程。比如在Windows系统中,一个exe文件就是一个进程(进程之间的通信很不方便)。
     线程是指进程中一个执行任务(控制单元),一个进程可以同时并发运行多个线程,如:多线程下载软件。
     多进程:操作系统中同时运行的多个程序。
     多线程:在同一个进程中同时运行的多个任务。
     注意:一个进程至少有一个线程,为了提高效率,可以在一个进程中开启多个执行任务,即多线程。
     Windows环境下的任务管理器:在操作系统系统中允许多个任务,每一个任务就是一个进程,每一个进程也可以同时执行多个任务,每一个任务就是线程。

      进程与线程的区别:
进程:有独立的内存空间,进程中的数据存放空间(堆空间和栈空间)是独立的,至少有一个线程。
线程:堆空间是共享的,栈空间是独立的,线程消耗的资源也比进程小,相互之间可以影响,又称为轻型进程或进程元。


     线程的先后执行取决于CPU调度器(JVM来调度)
     多线程并发性可看作是多个线程在瞬间抢CPU资源,谁抢到资源谁就运行,这也造就了多线程的随机性。
     Java程序的进程里至少包含主线程和垃圾回收线程(后台线程)。

3、多线程的优势

    工作方式:多任务、并发的。
    ①进程之间不能共享内存,而线程之间共享内存(堆内存)则很简单。
    ②系统创建进程时需要为该进程重新分配系统资源,创建线程则代价小很多,因此实现多任务并发时,多线程效率更高
    ③Java语言本身内置多线程功能的支持,而不是单纯的作为底层系统的调度方式,从而简化了多线程编程。

     多线程下载:可以理解为一个线程就是一个文件的下载通道,多线程也就是同时开起好几个下载通道。当服务器提供下载服务时,使用下载者是共享宽带的,在优先级相同的情况下,总服务器会对总下载线程进行平均分配。(线程多的话,下载快;现流行的下载软件都支持多线程)
     多线程是为了同步完成多项任务,不是为了提供程序运行效率,而是通过提高资源使用效率来提高系统的效率。(所以买电脑的时候,也应该看看CPU的线程数)

4、java操作进程小例子

因为有事,下面的以后再补。

猜你喜欢

转载自blog.csdn.net/IT_laobai/article/details/81661046