POSIX 信号量 POSIX信号量,它允许进程和线程同步对共享资源的访问。 本章内容的过程中将会对POSIX信号量和System V信号量进行比较以阐明这两组信号量API的相同之处和相异之处。 概述 SUSv3规定了两种类型的POSIX信号量。 命名信号量:这种信号量拥有一个名字。通过使用相同的名 ...
                            
                            
                                分类:
其他好文   时间:
2020-07-13 09:40:30   
                                阅读次数:
45
                             
                    
                        
                            
                            
                                    不得不说字节还是很难进的,提前批算是去试了一个水,自己的算法功底,还远远达不到要求,对操作系统,java虚拟机,多线程,进程等知识还有很大的欠缺,深度还远远不够,所以还是努力的刷题吧,希望秋招能顺利进入字节。 以下是主要问到的问题: 进程的信号量,线程的信号量,线程的中断, B+ 树, 手撕了一道算 ...
                            
                            
                                分类:
其他好文   时间:
2020-07-12 14:19:51   
                                阅读次数:
91
                             
                    
                        
                            
                            
                                    简介 AQS(AbstractQueuedSynchronizer)是并发开发中一个基础组件。主要实现了同步状态管理、线程队列管理、线程等待、线程唤醒等底层操作。JDK中许多的并发类都是依赖AQS的。 ReentrantLock(可重入锁)、Semaphore(信号量)、CountDownLatch ...
                            
                            
                                分类:
其他好文   时间:
2020-07-10 10:01:14   
                                阅读次数:
68
                             
                    
                        
                            
                            
                                    Semaphore信号量原理 Semaphore是一个计数信号量,本质是"共享锁". Semaphore维护一个信号量许可集. 线程可以调用acquire()获得信号量的许可. 线程可以调用release()释放其持有的信号量. 使用acquire()请求获得信号量时,若信号量有可用的许可时,线程获 ...
                            
                            
                                分类:
其他好文   时间:
2020-07-04 18:45:22   
                                阅读次数:
80
                             
                    
                        
                            
                            
                                一、shared_buffers与shmmax,shmall,max_connections的关系 1.1、shared_buffers与max_connections的关系 shared_buffers 是查询缓存,设置比较大可以提高PostgreSQL的效率,一般建议设置为系统内存的3/4,但是 ...
                            
                            
                                分类:
数据库   时间:
2020-07-04 16:52:42   
                                阅读次数:
80
                             
                    
                        
                            
                            
                                1.Semaphore定义Semaphore,是负责协调各个线程, 以保证它们能够正确、合理的使用公共资源。也是操作系统中用于控制进程同步互斥的量。 Semaphore常用的方法有两个WaitOne()和Release(),Release()的作用是退出信号量并返回前一个计数,而WaitOne()则 ...
                            
                            
                         
                    
                        
                            
                            
                                优先级反转问题的描述: 假设任务1,任务2,任务3;他们的优先级顺序分别为1 > 2 > 3。有一个稀缺资源S,S由一个信号量控制为互斥访问。 任务3正在执行,并申请到了资源S; 任务1抢占了任务3的执行,任务3挂起,任务1执行; 任务1申请资源S,发现被占用,所以挂起,任务3恢复执行; 任务2抢占 ...
                            
                            
                                分类:
其他好文   时间:
2020-06-26 22:07:13   
                                阅读次数:
50
                             
                    
                        
                            
                            
                                    1.大纲 CountDownLatch倒计时门闩 Semaphore信号量 Condition条件对象 CyclicBarrier循环栅栏 一:控制并发流程 1.说明 作用让程序员容易得到线程之间的合作 线程之间的合作,满足业务逻辑 2.常见工具类 二:CountDownLatch的使用 1. ...
                            
                            
                                分类:
其他好文   时间:
2020-06-25 10:15:47   
                                阅读次数:
61
                             
                    
                        
                            
                            
                                    计算机科学中, 同步(synchronization)是指两个不同但有联系的概念:进程同步与数据同步。进程同步指多个进程在特定点会合(join up)或者握手使得达成协议或者使得操作序列有序。数据同步指一个数据集的多份拷贝一致以维护完整性。常用进程同步原语实现数据同步。 死锁:某一个进程占有共享资源 ...
                            
                            
                                分类:
其他好文   时间:
2020-06-25 09:40:03   
                                阅读次数:
83
                             
                    
                        
                            
                            
                                    1. 概念 自旋锁的目的是在短期间内进行轻量级的锁定,解决对某项共享资源的互斥使用,在等待锁重新可用期间进行自旋,所以自旋锁不应该被持有时间过长,如果需要长时间锁定的话,推荐使用信号量。实际操作的数据结构如下: 2. 获取锁 最终执行的代码是体系结构相关的自旋锁实现:arch_spin_lock。  ...
                            
                            
                                分类:
其他好文   时间:
2020-06-23 14:59:38   
                                阅读次数:
51