Java并发编程基础
Java语音从开始就内置了对多线程的支持,线程是操作系统的最小单元,多个线程同时执行可以明显提升程序性能。但是过多的创建线程以及不正当的管理线程也容易造成问题。所以,认识并合理使用线程变成提升编码能力的必要途径。
什么是线程
操作系统在运行一个程序时,会为其创建一个进程。例如:启动一个Java程序,系统会创建一个Java进程。上文提到操作系统的最小调度单元是线程,线程也被称为***轻量级进程***,一个进程可以创建多个线程。这些线程都有各自的计数器、堆栈以及局部变量等属性,而且还能访问共享的内存变量。处理器在这些线程中高速切换,让我们感觉是多个线程同时执行。
举个例子吧,一个Java程序,从最开始的mian()方法开始执行,然后按照既定的逻辑执行,看似没有其它的线程参与,但是吧,Java程序本身就是一个多线程的程序。所以。。。
public class MultiThread{public static void main(String[] args) {// 获取Java线程管理MXBeanThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();// 不需要获取同步的monitor和synchronizer信息,仅获取线程和线程堆栈信息ThreadInfo[] threadInfos = threadMXBean.dumpAllThreads(false, false);// 遍历线程信息,仅打印线程ID和线程名称信息for (ThreadInfo threadInfo : threadInfos) {System.out.println("[" + threadInfo.getThreadId() + "] " + threadInfo.getThreadName());}}
}
从以上代码可以看出来,Java程序执行,是main线程和多个其它线程同时运行。
为什么使用多线程
执行一个*“Hello World”*,却启动了那么多无关的线程,是不是意味着把简单的问题复杂化了?当然不是,正确使用多线程,可以带来很多好处哦。使用多线程的原因,有以下几点
- 更多的处理器核心
- 更快的响应时间
- 更好的编程模型
作者:https://gper.club/articles/7e7e7f7ff7g5agc8g6d
Java并发编程基础相关推荐
- Java并发编程基础--ThreadLocal
Java并发编程基础之ThreadLocal ThreadLocal是一个线程变量,但本质上是一个以ThreadLocal对象为键.任意对象为值的存储结构,这个结构依附在线程上,线程可以根据一个T ...
- Java并发编程的艺术-Java并发编程基础
第4章 Java并发编程基础 Java从诞生开始就明智地选择了内置对多线程的支持,这使得Java语言相比同一时期的其他语言具有明显的优势.线程作为操作系统调度的最小单元,多个线程能够同时执行,这将 ...
- java 并发编程多线程_多线程(一)java并发编程基础知识
线程的应用 如何应用多线程 在 Java 中,有多种方式来实现多线程.继承 Thread 类.实现 Runnable 接口.使用 ExecutorService.Callable.Future 实现带 ...
- java并发编程入门_探讨一下!Java并发编程基础篇一
Java并发编程想必大家都不陌生,它是实现高并发/高流量的基础,今天我们就来一起学习这方面的内容. 什么是线程?什么是进程?他们之间有什么联系? 简单来说,进程就是程序的一次执行过程,它是系统进行资源 ...
- Java并发编程 基础知识学习总结
Java并发编程一直是Java程序员必须懂但又是很难懂的技术内容,这部分的内容我也是反复学习了好几遍才能理解.本篇博客梳理一下最近从<Java 并发编程的艺术>和他人的博客学习Java并发 ...
- 【Java并发编程的艺术】读书笔记——Java并发编程基础
学习参考资料:<Java并发编程的艺术> 文章目录 1.线程的几种状态 2.如何安全的终止线程 3.线程间通信(重要) 3.1共享内存 3.2消息传递 1.线程的几种状态 线程在运行的生命 ...
- Java并发编程基础-ReentrantLock的机制
同步锁: 我们知道,锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源,在Lock接口出现之前,Java应用程序只能依靠synchronized关键字来实现同步锁 ...
- java并发编程基础—生命周期与线程控制
一.线程生命周期 线程被创建启动以后,他既不是一启动就进入执行状态,也不是一直处于执行状态,在线程的生命周期中,它要经过新建(New).就绪(Runnable).运行(Running).阻塞(Bloc ...
- java并发编程基础系列(五): 创建线程的四种方式
线程的创建一共有四种方式: 继承于Thread类,重写run()方法: 实现Runable接口,实现里面的run()方法: 使用 FutureTask 实现有返回结果的线程 使用ExecutorSer ...
- Java 并发编程 基础
第一章 线程的操作 1.1创建多线程的方式 第一种:继承Thread 第二种:实现Runnable接口 1.2线程的常用方法 currentThread(): 获取当前线程 isAlive():判断当 ...
最新文章
- 快速穷举TCP连接欺骗攻击-利用SYN Cookies
- [置顶] ibatis做分页
- 简单使用Boost线程池threadpool
- Java线程的使用及共享协作
- Python与机器视觉(x)下雨啦,图片模拟雨天效果
- Java中String连接性能的分析
- [恩分到动归分类好了]取石子游戏
- VoLTE技术中的会话持续性-ICS
- 自学python-python自学难吗
- 在Android关机中插入脚本
- 瑞利信道:从原理到实现
- GB 4208-93 外壳防护等级(IP代码)
- linux删除svn版本库
- 前端常用属性知识点--文档
- 异步获取到图虫上的图片
- 8.8.6. Polygons
- IP地址的划分-------IP地址的借位情况
- dot Net SerialPort 组件关闭时卡住
- 惠普手机将入华展开厮杀 - 摘自IT时代周刊
- XXTEA 加解密算法的 Python 实现
热门文章
- 外星人计算机桌面,Alienware Alienware桌面Win10系统和BIOS设置教程
- s7700设备如何清除console密码
- Mysql ERROR 1067: Invalid default value for ‘date’ 解决
- CSS实现DIV垂直水平居中
- 设计一种可全向移动的球形机器人
- MYSQL:查询年龄最大的5个学生(包括年龄并列第5名的所有学生)的姓名、年龄及所在系。
- 开发指南专题十五 JEECG微云快速开发平台EXCEL导入导出
- 火车票抢票软件哪个成功率高更靠谱?
- 点击链接弹出qq对话框
- linux内核裁剪的具体过程和方法