
并发
SUKI547
从放弃到入门
展开
-
并发缺陷探测技术的白盒方法-总结
文章目录目标对象探测技术分类技术方法1. 定义事件event2. 定义执行轨迹的规范3. 建立约束4. 约束求解5.收集原子违背6. 结果总结本文为并发缺陷的确定性复现-以线程为研究中心的总结以 Efficient transaction-based deterministic replay for multi-threaded programs 文章提出的TPLAY工具 和基于约束求解的并发程序错误预测方法研究 硕士论文ASVDetector工具 举例专有名词定义在 【并发理论】事件、执行轨迹、可原创 2020-05-27 18:10:27 · 584 阅读 · 0 评论 -
【并发理论】事件、执行轨迹、可行性公理、最大因果模型
文章目录事件执行轨迹内容来自— 背景 —任意线程都能通过执行一组原子操作来访问并发对象;若对某些并发对象进行访问的原子操作序列能由并发程序的执行产生,则表明这些原子操作序列满足了规定的顺序要求。这些顺序要求被称为并发对象的序列化规范(serial specification) 序列化规范是顺序要求,是并发程序对并发对象访问产生的原子操作序列顺序。并发对象多为两种:共享内存地址:对共享...原创 2020-02-19 23:07:03 · 545 阅读 · 0 评论 -
【并发缺陷】data race数据竞争、atomicity violation原子违背、order violation顺序违背
三类均是跟共享变量的内存访问有关的缺陷。对于并发缺陷的分类目前国内许多是分死锁、数据竞争、原子违背、顺序违背。或者在并发缺陷中又细分 concurrency vulnerability :死锁和数据竞争。感觉各个作者有自己的分类方法????以下引用的中文解释来自<并发缺陷暴露、检测与规避研究综述>哈工大的苏小红老师实验室发表在2015年计算机学报上目前找到外文文献分为7类。其他四类...原创 2019-10-25 15:52:32 · 1494 阅读 · 0 评论 -
【Java 并发】线程join() 和 yield()
看了一遍thinking in java 没懂,看了中文版Java高并发的书才了解。我跪着来学习了joinThread 的join和sleep一样是一个可中断的方法,如果有其他线程执行了对当前线程的interrupt操作,也会捕获到中断信号,并擦除线程的interrupt标识,Thread的API提供了3种不同的join方法。1. public final void join() throw...原创 2019-10-24 22:06:54 · 295 阅读 · 0 评论 -
死锁(Deadlock)、活锁(LiveLock)、饥饿(Starvation)、挂起(Suspension)
最近在做并发缺陷的分类,发现不同学者对缺陷分类粒度不同,现对其中几个概念重述,欢迎交流!本文以书面文字为准,附上说明来源。若希望简单易懂的举例,请移步死锁,活锁和饥饿死锁1971年,Coffman总结系统产生死锁必定同时保持如下4个必要条件。互斥条件(mutual exclusion):临界资源是独占资源,进程应互斥且排他地使用这些资源。占有和等待条件(hold and wait):...原创 2019-10-22 16:11:21 · 3883 阅读 · 0 评论 -
【Java 并发】死锁:Deadlock
Now you understand an object can have synchronized methods or other forms of locking that prevent tasks from accessing that object until the mutex is released. You’ve also learned that tasks can beco...原创 2019-09-27 15:21:47 · 394 阅读 · 0 评论 -
【Java 并发】任务之间的合作:wait() 、notify() notifyAll() 、lock+condition、BlockingQueue
文章目录wait() and notifyAll()notify() vs. notifyAll()Producers and consumersThe key issue when tasks are cooperating is handshaking between those tasks. To accomplish this handshaking, we use the same...原创 2019-09-27 10:49:46 · 1333 阅读 · 0 评论 -
【Java 并发】结束任务、中断线程 :blocked、interrupted
文章目录Terminating taskTerminating when blockedBecoming blockedInterruption总结三种 interrupt任务的方法Blocked by a mutexChecking for an interruptthinking in java 课后答案Terminating taskTerminating when blocked...原创 2019-09-26 16:02:48 · 1307 阅读 · 0 评论 -
【Java 并发】 线程的基本操作1 Runnable、Thread、Executors、Callable带返回值的线程
文章目录RunnableThreadRunnable 与ThreadExecutorsCachedThreadPool ,FixedThreadPool(n), SingleThreadExecutor()CallableExecutor与 Thread令人困惑的术语-----Task?Runnable线程驱动任务,因此您需要一种方法来描述该任务。 这是由Runnable 接口提供的。 要定义...原创 2019-09-18 16:19:49 · 666 阅读 · 0 评论 -
【Java并发】共享资源:Lock 、synchronized、Atomic、volatile、local storage线程本地存储
文章目录Improperly accessing resourcesResolving shared resources contentionSynchronizingLock objectsAtomicity and volatileDistinct conceptsAtomic classCritical sectionsThread local storageBrian’s Rule o...原创 2019-09-24 21:16:43 · 470 阅读 · 0 评论 -
Linux 进程与线程
进程进程是程序在资源集合上的一次运行进程= 代码+外设+内存+CPU(使用周期划分时间片轮流分割,满足并发)进程 = 线程集合+资源集合进程 = 进程PCB+资源+全局data+code +(线程PCB+线程用户栈/核心栈)*n引入线程的原因把进程的两项功能“独立分配资源”和“被调度分派执行”分离开来。前一任务由进程完成,后一项交给线程这个实体多线程切换只需改变堆栈和寄存器。...原创 2019-06-26 17:10:10 · 264 阅读 · 0 评论 -
【Java 并发】 Synchronized关键字
文章目录synchronized简介两种方法1. 对象锁2. 类锁多线程访问同步方法实例总结与Lock对比synchronized 原理可重入性反编译可重入性原理可见性原理缺陷常见面试问题本文笔记来自MOOC课程Java高并发之魂:synchronized深度解析synchronized简介Synchronized 是Java最基本的关键字,它保证同一时刻只有一个线程访问,属于独占锁两种方...原创 2019-09-04 15:21:21 · 254 阅读 · 0 评论