Java的线程机制,则是由执行程序表示的单一进程创建的任务(拗口!),注意,是在单一进程里面创建多个任务,不同于操作系统分叉外部进程。由于所有的任务在同一个进程内,任务之间会相互干涉(例如操作同样的对象,内存)。这些独立的任务则是由执行线程来驱动,一个线程就是在进程中的一个单一的顺序控制流。Java的线程机制是对操作系统透明的,线程不需要知道底层CPU是单核还是多核。线程通过切分CPU时间来获得并发执行,需要消耗上下文切换(但是与进程切换相比要小很多)。

总结:Java运行的单一进程创建许多独立的任务,而每一个任务都需要在一个线程上执行,以实现进程的多任务。

为何要创建多任务?这个问题等价于为何要使用并发编程。一个用户经常使用的程序,一般都会有诸如关闭按钮,随时响应用户输入,并且不断有可视化图形界面输出,试想如果没有并发编程(即是没有多任务)的情况下,进程只有一个任务在运行,假设是等待输入。进程在等待用户输入的时候,进入IO阻塞,这时候,图形界面静止了,也没法关闭进程(因为在等待用户输入,所有CPU时间都用在等待上面,无法响应关闭事件)。有了并发编程(即允许进程创建多个任务,这里3个任务就够了:等待用户输入、等待关闭操作和输入图形界面),这些任务都能被分配到一定的CPU时间片,形象的说就是大家都有机会来执行(分配机制取决于运行的系统),这样,即是等待用户输入任务进入了IO阻塞,CPU可以切换到其余两个任务(注意CPU同一时间内只能执行一个任务,但是因为切换,看起来像是并发执行多个任务),这样界面一样有输出,关闭操作也得到响应,而当用户真的进行了输入,等待用户输入任务还是可以响应用户输入(需要注意的是,这个响应用户输入并不是即时的,因为输入发生时CPU不一定在执行等待用户输入任务,不过线程的调度机制可以确保得到响应)。

与线程一起被提及的另一个概念是进程,进程是运行在它自己的地址空间内的自包容的程序(不了解~~~~(>_

java多线程意义_Java多线程学习之多线程的概念及意义相关推荐

  1. java 多线程语法_Java基础语法之多线程学习笔记整理

    众所周知,利用好多线程机制,可以大大提高系统整体的并发能力以及性能,而且线程间的切换和调度的成本小.因此,多线程是Java学习者必须掌握的语法重点.本文为大家整理了进程和线程.实现多线程方式.设置和获 ...

  2. java新人培训_Java新人学习必要的步骤以及全套学习路线!

    原标题:Java新人学习必要的步骤以及全套学习路线! 想学Java,刚开始有没有觉得无从下手呢?其实Java的基础知识点,并不多,但是一定要吃透,因为这是为后续核心的学习打下一个良好的基础.简单来说, ...

  3. java多线程构造函数_java线程基础巩固---多线程与JVM内存结构的关系及Thread构造函数StackSize的理解...

    多线程与JVM内存结构的关系[了解]: 对于最后一个有疑问的构造中stackSize参数,其实学过编程滴人从参数字面就比较容易理解,栈大小嘛,这里从官方文档上来了解一下这个参数: 而之前在学习java ...

  4. java线程倒计时_Java程序如何实现多线程倒计时牌

    java作为目前最为流行的计算机开发语言之一,学习java是高薪就业的好选择,以下是关于Java程序如何实现多线程倒计时牌,希望下面的内容介绍,能够让大家对于Java程序如何实现多线程倒计时牌更加了解 ...

  5. java多线程抽奖_java 线程池、多线程并发实战(生产者消费者模型 1 vs 10) 附案例源码...

    导读 前二天写了一篇<Java 多线程并发编程>点我直达,放国庆,在家闲着没事,继续写剩下的东西,开干! 线程池 为什么要使用线程池 例如web服务器.数据库服务器.文件服务器或邮件服务器 ...

  6. java多线程教程_java 基础教程之多线程详解及简单实例

    java 多线程详解 在这篇文章里,我们关注多线程.多线程是一个复杂的话题,包含了很多内容,这篇文章主要关注线程的基本属性.如何创建线程.线程的状态切换以及线程通信. 线程是操作系统运行的基本单位,它 ...

  7. java通信项目_Java项目中的多线程通信如何利用Socket实现

    Java项目中的多线程通信如何利用Socket实现 发布时间:2020-11-24 16:44:40 来源:亿速云 阅读:96 作者:Leah 这期内容当中小编将会给大家带来有关Java项目中的多线程 ...

  8. java 持久化线程_java – Spring Hibernate Envers多线程 – 会话关...

    我们使用Hibernate(使用JPA)和Hibernate Envers来持久化对象的历史. Web应用程序运行许多线程,其中一些是通过其他应用程序的RMI方法调用创建的,其中一些是由应用程序本身创 ...

  9. mysql服务器多线程模型_java 线程池、多线程并发实战(生产者消费者模型 1 vs 10) 附案例源码 - 陈彦斌 - 博客园...

    导读 前二天写了一篇<Java 多线程并发编程>点我直达,放国庆,在家闲着没事,继续写剩下的东西,开干! 线程池 为什么要使用线程池 例如web服务器.数据库服务器.文件服务器或邮件服务器 ...

  10. java中我爱你_Java线程学习(转)

    编写具有多线程能力的程序经常会用到的方法有: run(),start(),wait(),notify(),notifyAll(),sleep(),yield(),join() 还有一个重要的关键字:s ...

最新文章

  1. netstat常用命令
  2. JDeodorant 的使用
  3. android按钮固定尺寸,如何在android中保持按钮的固定宽高比
  4. native 真机测试react_react-native真机调试出现Failed to install all
  5. SilverLight MD5加密
  6. Permutations II
  7. ser crt linux 乱码,大师为你解决securecrt中文乱码【处理指南】
  8. python java正则表达式_java 正则表达式
  9. java笔试面试题(五)
  10. 卫星地图上,深圳梧桐山这一条白线是什么
  11. HTML5+CSS3 为图书简介页面添加图像及视频
  12. 外文文献翻译一条龙 -对于毕设翻译贼有用
  13. 解决Win键不能用的问题
  14. 洛谷【P1359】租用游艇
  15. MySQL约束和表的复杂查询操作
  16. (域名解析过程)web请求过程全解析一
  17. 银行营销策略数据分析 - 智能定位
  18. Arduino中Serial.print()与Serial.write()函数的区别,以及串口通信中十六进制与字符串的收发格式问题和转换过程详解
  19. 操作系统春招面试复习之:设备管理
  20. c语言 整数四则运算

热门文章

  1. Spring Security加密策略
  2. JAVA中浅复制与深复制
  3. 教育教学知识与能力小学计算机,浅谈小学计算机教学论文
  4. python自动化从零开始_从零开始学Selenium自动化测试:基于Python:视频教学版
  5. 查看ssh端口号_萌新云服务器折腾记-SSH配置
  6. mysql 存储引擎接口_MySQL 的基础一(连接池, SQL接口, 查询解析器, 查询优化器, 存储引擎接口, 执行器,)...
  7. 反转数字(qduoj)
  8. 计算机专业特殊人才上大学,上海交通大学计算机科学与工程系(CSE)
  9. Android自定义文件路径箭头,Android自定义ViewGroup实现带箭头的圆角矩形菜单
  10. 曲线行驶最后什么时候回正_曲线行驶总压线?老教练给你支支招,看完觉得太简单了……...