文章 2023-02-21 来自:开发者社区

《Java 并发编程》进程与线程

1. 基本概念进程程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载到 CPU,数据加载到内存。在指令运行过程中还需使用磁盘、网络等设备,进程就是用来加载指令、管理内存、管理 IO 的。当一个程序运行,从磁盘加载这个程序的代码到内存,这时就开启了一个进程。进程可以看作程序的一个实例,大部分程序可以同时运行多个进程实例(例如记事本,画图,浏览器等),也有的程序只能启动一个实例进程....

《Java 并发编程》进程与线程
文章 2023-02-20 来自:开发者社区

【已解决】利用 Java 多线程并发编程提高数据处理效率

工作场景中遇到这样一个需求:根据主机的 IP 地址联动更新其他模型的相关信息。需求很简单,只涉及一般的数据库联动查询以及更新操作,然而在编码实现过程中发现,由于主机的数量很多,导致循环遍历查询、更新时花费很长的时间,调用一次接口大概需要 30-40 min 时间才能完成操作。因此,为了有效缩短接口方法的执行时间,便考虑使用多线程并发编程方法,利用多核处理器并行执行的能力,通过异步处理数据的方式,....

【已解决】利用 Java 多线程并发编程提高数据处理效率
文章 2022-12-12 来自:开发者社区

《JUC并发编程 - 高级篇》03 - 共享对象之管程 上篇(共享带来的问题 | synchronized | 线程八锁 | 线程安全类)(三)

例6//本类是线程安全的,因为userService中没有可变的属性. public class MyServlet extends HttpServlet { // 是否安全 private UserService userService = new UserServiceImpl(); public void doGet(HttpServletRequest requ...

《JUC并发编程 - 高级篇》03 - 共享对象之管程 上篇(共享带来的问题 | synchronized | 线程八锁 | 线程安全类)(三)
文章 2022-12-12 来自:开发者社区

《JUC并发编程 - 高级篇》03 - 共享对象之管程 上篇(共享带来的问题 | synchronized | 线程八锁 | 线程安全类)(二)

3.3 方法上的 synchronized//成员方法上加synchronized,锁对象是当前对象this class Test{ public synchronized void test() { } } //等价于 class Test{ public void test() { synchronized(this) { } ...

《JUC并发编程 - 高级篇》03 - 共享对象之管程 上篇(共享带来的问题 | synchronized | 线程八锁 | 线程安全类)(二)
文章 2022-12-12 来自:开发者社区

《JUC并发编程 - 高级篇》03 - 共享对象之管程 上篇(共享带来的问题 | synchronized | 线程八锁 | 线程安全类)(一)

3.1 共享带来的问题3.1.1 小故事老王(操作系统)有一个功能强大的算盘(CPU),现在想把它租出去,赚一点外快小南、小女(线程)来使用这个算盘来进行一些计算,并按照时间给老王支付费用但小南不能一天24小时使用算盘,他经常要小憩一会(sleep),又或是去吃饭上厕所(阻塞 io 操作),有时还需要一根烟,没烟时思路全无(wait)这些情况统称为(阻塞)在这些时候,算盘没利用起来(不能收钱了)....

《JUC并发编程 - 高级篇》03 - 共享对象之管程 上篇(共享带来的问题 | synchronized | 线程八锁 | 线程安全类)(一)
文章 2022-12-12 来自:开发者社区

《JUC并发编程 - 高级篇》01 - 进程与线程概述 | 02 - Java线程(创建线程、查看线程、线程常见方法、线程状态)(四)

2.9.3 终止模式之两阶段终止模式Two Phase Termination在一个线程 T1 中如何“优雅”终止线程 T2?这里的【优雅】指的是给 T2 一个料理后事的机会。1、错误思路使用线程对象的 stop() 方法停止线程stop 方法会真正杀死线程,如果这时线程锁住了共享资源,那么当它被杀死后就再也没有机会释放锁,其它线程将永远无法获取锁使用 System.exit(int) 方法停止....

《JUC并发编程 - 高级篇》01 - 进程与线程概述 | 02 - Java线程(创建线程、查看线程、线程常见方法、线程状态)(四)
文章 2022-12-12 来自:开发者社区

《JUC并发编程 - 高级篇》01 - 进程与线程概述 | 02 - Java线程(创建线程、查看线程、线程常见方法、线程状态)(三)

2.7.2 yield调用 yield 会让当前线程从 Running 进入 Runnable 就绪状态,然后调度执行其它线程具体的实现依赖于操作系统的任务调度器对比 yield与sleep相同点:两者都是让当前线程不再执行,调度执行其他线程不同点:调用 sleep 会让当前线程从 Running 进入 Timed Waiting 状态(阻塞)。 此时当前线程不会被执行,直至达到sleep的时间....

《JUC并发编程 - 高级篇》01 - 进程与线程概述 | 02 - Java线程(创建线程、查看线程、线程常见方法、线程状态)(三)
文章 2022-12-12 来自:开发者社区

《JUC并发编程 - 高级篇》01 - 进程与线程概述 | 02 - Java线程(创建线程、查看线程、线程常见方法、线程状态)(二)

2.3 查看进程线程的方法windows任务管理器可以查看进程和线程数,也可以用来杀死进程tasklist 查看进程taskkill 杀死进程linuxps -ef 查看所有进程ps -ef -p 查看某个进程(PID)的所有线程kill 杀死进程top 按大写 H 切换是否显示线程top -H -p 查看某个进程(PID)的所有线程环境准备:ps+killtopJavajps 命令查看所有 J....

《JUC并发编程 - 高级篇》01 - 进程与线程概述 | 02 - Java线程(创建线程、查看线程、线程常见方法、线程状态)(二)
文章 2022-12-12 来自:开发者社区

《JUC并发编程 - 高级篇》01 - 进程与线程概述 | 02 - Java线程(创建线程、查看线程、线程常见方法、线程状态)(一)

一、进程和线程1.1 进程和线程进程程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至 CPU,数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理 IO 的当一个程序被运行,从磁盘加载这个程序的代码至内存,这时就开启了一个进程。进程就可以视为程序的一个实例。大部分程序可以同时运行多个实例进程(例如记事本、画图、浏览器等),也有的程....

《JUC并发编程 - 高级篇》01 - 进程与线程概述 | 02 - Java线程(创建线程、查看线程、线程常见方法、线程状态)(一)
文章 2022-12-06 来自:开发者社区

JUC并发编程学习(二)-进程和线程知识回顾

进程线程知识回顾进程:就是一个应用程序,如QQ.exe ,music.exe程序线程:一个进程中可能包含多个线程,至少包含一个。在java中一个应用程序至少有几个线程?2个, main线程、GC线程并行、并发是什么?并发:指两个或多个时间在同一时间段发生。并发就是是串行的同步,一个任务执行完成才执行下一任务;多线程、多个线程操作一个资源类,快速交替的过程。并行:指两个或多个时间在同一时刻发生。指....

JUC并发编程学习(二)-进程和线程知识回顾

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐