![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线程相关
文章平均质量分 80
。
飞翔的汤姆猫
这个作者很懒,什么都没留下…
展开
-
Future和CompletableFuture
无原创 2022-08-27 11:23:10 · 696 阅读 · 0 评论 -
多线程并发3.0
应用背景需要推送30万条数据给用户,但是推送的接口只支持单条推送可以估计一下,30万条数据,一条数据按3s算,大概需要250个小时因此这里考虑使用多线程来进行并发操作,降低数据推送的时间,提高数据推送的实时性设计要点数据推送肯定是不能重复的,因此需要有一个机制来保证各个线程推送数据的隔离思路一:将所有数据放到一个集合里,然后对数据进行切割,每个线程推送不同段的数据代码示例public void test(Map<String,String> phoneMap){ //拆分成1原创 2021-06-05 14:23:29 · 262 阅读 · 0 评论 -
多线程学习
调用run方法和start方法的区别-调用run方法,只有一个main线程,当做普通方法,此时只有main线程一条执行路径-调用start方法,开启多线程,多条执行路径,主线程和子线程并发执行进程和线程-进程,进程是程序的一次执行过程,进程是系统资源分配的最小单位-线程,线程是程序运行的最小单位,多个线程共享同一进程的数据空间,当然线程也有自己的数据空间PS-线程可以堪称是一条独立的执行路径-即使自己没有创建线程,程序运行时也是有多个线程的,例如主线程(main方法)、gc线程(垃圾回收)原创 2021-05-28 14:18:37 · 60 阅读 · 0 评论 -
JMM..
无原创 2021-03-08 18:11:42 · 91 阅读 · 0 评论 -
synchronized代码实例
1、没有同步情况该程序不会有资源抢占情况,会打印出多种结果public class SynchronizedTest { public void method1(){ System.out.println("Method 1 start"); try { Thread.sleep(100); System.out.println("Method 1 execute"); Thread.sleep(3原创 2021-03-04 15:41:53 · 277 阅读 · 0 评论 -
进程与线程的关系(附示意图)
进程进程简单理解就是我们平常使用的程序,如QQ,浏览器,网盘等。进程拥有自己独立的内存空间地址,拥有一个以上的线程。线程线程可以理解为轻量级的进程,是程序执行的最小单元。在某个进程启动后,会默认产生一个主线程,主线程可以创建多个子线程,因此线程是存在进程内的,位于一个进程内的线程可以共享部分资源,故线程间的切换比进程少得多。PS:主线程与子线程可以同步或者异步执行,可以通过阻塞、守护等方...原创 2020-01-11 15:32:15 · 1407 阅读 · 0 评论