多线程
码到成功-
脚踏实地,一步一个脚印
展开
-
Race Condition(竞争条件)
计算机运行过程中,并发、无序、大量的进程在使用有限、独占、不可抢占的资源,由于进程无限,资源有限,产生矛盾,这种矛盾称为竞争(Race)。 由于两个或者多个进程竞争使用不能被同时访问的资源,使得这些进程有可能因为时间上推进的先后原因而出现问题,这叫做竞争条件(Race Condition)。 竞争条件分为两类: -Mutex(互斥):两个或多个进程彼此之间没有内在的...转载 2018-07-23 18:28:30 · 9556 阅读 · 0 评论 -
CountDownLatch的理解
CountDownLatch的概念CountDownLatch是一个同步工具类,用来协调多个线程之间的同步,或者说起到线程之间的通信(而不是用作互斥的作用)。CountDownLatch能够使一个线程在等待另外一些线程完成各自工作之后,再继续执行。使用一个计数器进行实现。计数器初始值为线程的数量。当每一个线程完成自己任务后,计数器的值就会减一。当计数器的值为0时,表示所有的线程都已经完成了...转载 2018-09-18 17:22:47 · 83 阅读 · 0 评论 -
Java 原子性引用 AtomicReference
AtomicReferenceAn object reference that may be updated atomically.The AtomicReference class provides reference objects that may be read and written atomically, so when multiple threads try to re...转载 2018-08-18 14:48:34 · 948 阅读 · 0 评论 -
守护进程
参考百度百科:https://baike.baidu.com/item/%E5%AE%88%E6%8A%A4%E8%BF%9B%E7%A8%8B/966835?fr=aladdinhttps://blog.csdn.net/one_piece_hmh/article/details/52770111转载 2018-07-21 19:37:46 · 93 阅读 · 0 评论 -
线程 join的简单总结
java 线程方法join的简单总结虽然关于讨论线程join方法的博客已经很多了,不过个人感觉挺多都讨论得不够全面,所以我觉得有必要对其进行一个全面的总结。 一、作用 Thread类中的join方法的主要作用就是同步,它可以使得线程之间的并行执行变为串行执行。具体看代码: public class JoinTest { public static void...转载 2018-07-21 19:16:01 · 129 阅读 · 0 评论 -
Java线程之释放锁,释放资源,释放CPU
多线程中的wait与sleep到底谁释放了锁首先,多线程中会使用到两个延迟的函数,wait和sleep。wait是Object类中的方法,而sleep是Thread类中的方法。sleep是Thread类中的静态方法。无论是在a线程中调用b的sleep方法,还是b线程中调用a的sleep方法,谁调用,谁睡觉。最主要的是sleep方法调用之后,并没有释放锁。使得线程仍然可以同步控制。sl...转载 2018-07-24 17:33:56 · 5091 阅读 · 0 评论 -
多线程为什么弃用stop和suspend
初始的java版本中定义了一个stop方法来终止一个线程还定义了一个suspend方法来阻塞一个线程,直到另一个线程调用resume方法。这两个方法在Java SE 1.2之后就被弃用了,因为这两种方法都不安全,下面我们分别来讨论一下为什么不安全和应该怎样做才是安全的。 一、stop方法为什么不安全 其实stop方法天生就不安全,因为它在终止一个线程时会强制中断线程的执行,不管ru...转载 2018-07-24 16:57:51 · 729 阅读 · 0 评论 -
ReentrantLock的使用
Lock的使用前言:本系列将从零开始讲解java多线程相关的技术,内容参考于《java多线程核心技术》与《java并发编程实战》等相关资料,希望站在巨人的肩膀上,再通过我的理解能让知识更加简单易懂。目录认识cpu、核心与线程 java多线程系列(一)之java多线程技能 java多线程系列(二)之对象变量的并发访问 java多线程系列(三)之等待通知机制 java多线程系列...转载 2018-07-24 14:09:28 · 276 阅读 · 0 评论 -
进程间通信-信号量(功能:共享资源)
一什么是信号量 二信号量的工作原理 三Linux的信号量机制 四示例 信号量、消息队列和共享内存都是会涉及到进程间的同步和互斥。错误: 在进行这个实验的时候,我一直不能得到想要的结果。所以在信号量的获取semid成功与否,信号量操作semop成功与否,信号量的设置semctl成功与否,这些都要将结果打印出来判断。看看是在哪里出错的,进行改进。 我查到是在信号量的操作semo...转载 2018-07-23 18:30:00 · 436 阅读 · 0 评论 -
深入理解Semaphore
使用Semaphore是计数信号量。Semaphore管理一系列许可证。每个acquire方法阻塞,直到有一个许可证可以获得然后拿走一个许可证;每个release方法增加一个许可证,这可能会释放一个阻塞的acquire方法。然而,其实并没有实际的许可证这个对象,Semaphore只是维持了一个可获得许可证的数量。 Semaphore经常用于限制获取某种资源的线程数量。下面举个例子,比如说操场...转载 2018-09-18 17:56:12 · 103 阅读 · 0 评论