注册 登录
Java基础教程

第一章: 开启Java学习之旅

第二章: 掌握计算机基础知识

第三章: 掌握命令行基础知识

第四章: 我的第一个Java程序

第五章: Java编程必备基础

第六章: Java编程的核心:控制结构

第七章: Java面向对象基础

第八章: Java面向对象进阶

第九章: Java字符串类型

第十章: Java数组与数据结构

第十一章: Java高级数据结构

第十二章: Java并发编程基础

首页 > Java基础教程 > 第十二章: Java并发编程基础 > 12.4节: 线程的基础概念

12.4节: 线程的基础概念

薯条老师 2022-01-12 11:47:45 141205 0

编辑 收藏

广州番禺Python, Java小班周末班培训

薯条老师的线下Python小班办得很好,学员的平均就业薪资有11K。线下小班培训的课程有Python爬虫,Python后端开发,Python办公自动化,Python大数据分析,Python量化投资,Java中高级后端开发。授课详情请点击:http://chipscoco.com/?cate=6

12.4.1 什么是线程?

在12.3节介绍进程的概念时,讲到进程是操作系统进行资源分配的基本单位。读者可以把操作系统理解为一个容器,进程运行在操作系统这个容器里面,并占用着各种系统资源:CPU,内存,磁盘等。而线程是运行在进程内部的执行实体,一个线程对应一个单一顺序的控制流,从这一个角度来看,进程是线程的容器。

操作系统是进程的容器,进程是线程的容器。在支持多线程的操作系统中,线程是系统进行任务调度和任务执行的基本单位。

进程是资源分配的基本单位,而线程是任务调度和任务执行的基本单位。线程的执行也是由操作系统进行调度的,系统会根据特定的调度策略,将线程分配给某个CPU核心。

12.4.2 线程的资源占用

线程运行在进程这个容器里面,共享着进程内部的资源,这表现为:所有线程共享进程的虚拟地址空间,全局变量,打开的文件等。

读者需注意,进程是资源分配的基本单位,而线程是进程内部的执行实体。

线程中的实体基本不占用系统资源,系统在创建线程时,只需分配少量的系统资源,保证线程能独立运行即可。

12.4.4 线程间的通信

由于所有线程都运行在进程这个容器里面,所以线程间的通信还是很简单的,直接通过进程内部的全局变量就可以实现线程间的通信。进程之间就无法通过全局变量来实现通信,因为每个进程分配的都是独立的虚拟地址空间。

12.4.5 线程间的同步

线程间的同步与进程间的同步是一样的概念,同样需要借助系统提供的同步机制,比如互斥锁,信号量,条件变量等来保证在对共享资源的安全访问。

通过同步机制来保证各个线程都可以正常且正确的执行,并且不会出现数据的不一致情况,这就是线程安全的概念。关于线程安全,会在Java的多线程编程中进一步讲解。

12.4.6 进程与线程

使用进程或线程都可以进行并发程序设计,读者在实际使用时, 需注意二者的区别,以决定采用何种并发编程模型。

在讲解Java的多进程与多线程编程时,会详细讲解与进程、线程相关的并发编程模型。

以下为进程和线程的主要区别:

(1) 系统中的每一个进程都会分配虚拟地址空间。线程运行在进程内部,所有线程共享进程的虚拟地址空间。

(2) 进程是操作系统进行资源分配和调度的基本单位。线程是在进程内部的任务调度和执行的基本单位

(3) 进程占用较多的系统资源,进程间的切换需要较大的开销。线程只占用少量的系统资源,是一种很轻量的执行实体,切换速度很快。

线程占用的系统资源较少,远比进程轻量,在实际开发中,通常使用多线程来进行高并发的程序设计。

12.3.8 最具实力的小班培训

来这里参加Python和Java小班培训的学员大部分都找到了很好的工作,平均月薪有11K,学得好的同学,拿到的会更高。由于是小班教学,所以薯条老师有精力把每位学员都教好。打算参加线下小班培训的同学,必须遵守薯条老师的学习安排,认真做作业和项目。把知识学好,学扎实,那么找到一份高薪的工作就是很简单的一件事。

(1) Python后端工程师高薪就业班,月薪11K-18K,免费领取课程大纲
(2) Python爬虫工程师高薪就业班,年薪十五万,免费领取课程大纲
(3) Java后端开发工程师高薪就业班,月薪11K-20K, 免费领取课程大纲
(4) Python大数据分析,量化投资就业班,月薪12K-25K,免费领取课程大纲

扫码免费领取学习资料:

关注微信公众号.jpg










欢迎 发表评论:

请登录

忘记密码我要注册

注册账号

已有账号?请登录