本文为博主原创文章,未经博主允许不得转载 http://www.cnblogs.com/kiplove/p/6724431.html 涉及进程同步的一些概念: 互斥与同步: 临界资源(临界区):指一次只能允许一个进程使用的共享资源称为临界资源; 同步:指为完成某种任务而建立的两个和多个进程,这些进程 ...
分类:
系统相关 时间:
2017-04-26 22:58:27
阅读次数:
365
一、从Hello World说起 1、程序为什么要被编译器编译了之后才可以运行? 2、编译器在把C语言程序转换成可以执行的机器码的过程中做了什么?怎么做的? 3、最后编译出来的可执行文件里面是什么?除了机器码还有什么?他们怎么存放的,怎么组织的? 4、#include<stdio.h>是什么意思?把 ...
分类:
其他好文 时间:
2017-04-25 00:44:45
阅读次数:
205
内核同步 同步介绍 同步的概念 临界区:也称为临界段,就是訪问和操作共享数据的代码段。 竞争条件: 2个或2个以上线程在临界区里同一时候运行的时候,就构成了竞争条件。 所谓同步。事实上防止在临界区中形成竞争条件。 假设临界区里是原子操作(即整个操作完毕前不会被打断),那么自然就不会出竞争条件。但在实 ...
分类:
系统相关 时间:
2017-04-16 19:05:40
阅读次数:
322
对于并发控制而言,我们平时用的锁(synchronized,Lock)是一种悲观的策略。它总是假设每一次临界区操作会产生冲突,因此,必须对每次操作都小心翼翼。如果多个线程同时访问临界区资源,就宁可牺牲性能让线程进行等待,所以锁会阻塞线程执行。 与之相对的有一种乐观的策略,它会假设对资源的访问是没有冲 ...
分类:
编程语言 时间:
2017-04-06 01:16:30
阅读次数:
438
【线程安全概念】 当多个线程访问某一个类(或对象、方法)时,这个类始终都能表现出正确的行为,那么这个类就是线程安全的。 【synchronized】 可以在任意对象及方法上加锁,而加锁的这段代码被称为“互斥区”或“临界区”。 【不加synchronized和加synchronized的不同情况】 【 ...
分类:
编程语言 时间:
2017-04-06 00:55:25
阅读次数:
231
进程:由程序段、相关的数据段和PCB三部分便构成了进程实体进程的特征:动态性、并发性、独立性、异步性进程的三种状态:就绪(Ready)状态 执行(Running)状态 阻塞(Block)状态 临界区:人们把在每个进程中访问临界资源的那段代码称为临界区。 同步机制应遵循的规则 (1)空闲让进 (2)忙 ...
分类:
系统相关 时间:
2017-04-05 09:39:42
阅读次数:
159
最近在做爬虫,经常用到多线程。这里总结一下我的多线程的使用习惯,方便取用 1、创建信号量: 2、信号锁与释放 3、多线程创建与启动 ...
分类:
编程语言 时间:
2017-04-02 10:24:03
阅读次数:
162
进程中线程同步的四种常用方式: 1、 临界区(CCriticalSection) 当多个线程访问一个独占性共享资源时,可以使用临界区对象。拥有临界区的线程可以访问被保护起来的资源或代码段,其他线程若想访问,则被挂起,直到拥有临界区的线程放弃临界区为止。具体应用方式: 1、 定义临界区对象Ccriti ...
分类:
编程语言 时间:
2017-04-01 00:40:23
阅读次数:
369
同步 要想实现同步操作,必须要获得线程的对象锁。获得它可以保证在同一时刻只有一个线能够进入临界区,并且在这个锁被释放之前,其他的线程都不能再进入这个临界区。如果其他线程想要获得这个对象的锁,只能进入等待队列等待。只有当拥有该对象锁的线程退出临界区时,锁才会被释放,等待队列中优先级最高的线程才能获得该 ...
分类:
其他好文 时间:
2017-03-31 13:06:33
阅读次数:
140
集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集合类型(concurrent,copyonright,queue)中的 ...
分类:
编程语言 时间:
2017-03-31 12:11:57
阅读次数:
213