进程通信 管道(pipe) 管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。 有名管道 (namedpipe) 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。 信号量(semaphore) 信号量是一个计数器,可 ...
分类:
编程语言 时间:
2020-03-11 15:47:03
阅读次数:
72
14.常用辅助类 14.1CountDownLatch:减法计数器 14.2CyclicBarrier:加法计数器 14.3 Semaphore:信号量 acquire() 当一个线程调用acquire方法的时候,就是获取到了一个信号量 1 如果当前为0,就会一直等待下去 release() 信号量 ...
分类:
其他好文 时间:
2020-03-10 13:47:00
阅读次数:
67
ARM-CM3创建任务、开启调度器、任务调度的整个流程: 【创建任务】 创建任务控制块。为任务申请空间并创建一个任务控制块NewTCB; 申请任务栈空间。为任务申请一块栈空间,并将起始地址存储到NewTCB.pxStack中; 初始化任务相关参数。将任务名、优先级和相关列表项等存放到任务控制块; 初 ...
分类:
其他好文 时间:
2020-03-04 21:15:31
阅读次数:
99
1. synchronized和lock的区别: synchronized 是Java内置关键字,lock 是Java类; synchronized 无法判断是否获得锁,lock 可以; synchronized 会自动释放,lock 需要手动释放; synchronized 线程1阻塞,线程2会永 ...
分类:
编程语言 时间:
2020-03-02 22:18:12
阅读次数:
75
死锁现象 第一种 加了2次同样的锁 只存在于互斥锁 第2种 2个进程都想获取对方的锁 却不可能实现 可重复锁RLock 可重复锁,是线程相关的锁不管实列化多少次都是同一只把锁, 引用计数 ,只要计数不为0,其他线程不可以抢. 可以解决死锁现象 信号量Semaphore 本质就是一个计数器,用来为多个 ...
分类:
其他好文 时间:
2020-03-01 10:55:57
阅读次数:
108
Semaphore信号量Semaphore是一个控制访问多个共享资源的计数器,本质上是一个共享锁Java并发提供了二种加锁模式:共享锁和独占锁。ReentrantLock是独占锁,每次只能有一个线程持有,共享锁运行多个线程... ...
分类:
其他好文 时间:
2020-02-28 12:07:48
阅读次数:
53
我们在67节和68节实现了线程的一些基本协作机制,那是利用基本的wait/notify实现的,我们提到,Java并发包中有一些专门的同步工具类,本节,我们就来探讨它们。 我们要探讨的工具类包括: 读写锁ReentrantReadWriteLock 信号量Semaphore 倒计时门栓CountDow ...
分类:
编程语言 时间:
2020-02-28 01:39:36
阅读次数:
78
Semaphore,信号量,常用于限制可以访问某些资源的线程数量,比如连接池、对象池、线程池等等。其中,你可能最熟悉数据库连接池,在同一时刻,一定是允许多个线程同时使用连接池的,当然,每个连接在被释放前,是不允许其他线程使用的。 信号量实现了一个最简单的互斥锁功能。估计你会觉得奇怪,既然有 Java ...
分类:
其他好文 时间:
2020-02-24 00:51:00
阅读次数:
104
一 守护进程 1.1 基本概念 守护进程 正常情况下,主进程默认等待子进程调用结束之后结束 守护进程在主进程执行代码结束后,自动终止 守护进程语法: 进程对象.daemon = True ,设置该进程是守护进程 守护进程需要在start()方法之前设置 为主进程守护,主进程如果代码执行结束了,该守护 ...
分类:
编程语言 时间:
2020-02-23 22:21:23
阅读次数:
85
多进程(状态:运行、阻塞、挂起阻塞、就绪、挂起就绪)进程是资源(CPU、内存等)分配的基本单位,它是程序执行时的一个实例。多线程(状态:创建、就绪、运行、阻塞、死亡五个状态)线程是程序执行时的最小单位,它是进程的一个执行流,是CPU调度和分派的基本单位,一个进程可以由很多个线程组成,线程间共享进程的 ...
分类:
编程语言 时间:
2020-02-23 22:13:47
阅读次数:
70