#!/bin/bash parallel=10 fileArr=(`ls -1 fileid/pre*`) for ((i=0; i<${#fileArr[*]}; i+=$parallel)); do for ((j=$i; j<$i+$parallel; j++)); do if (($j<${ ...
分类:
系统相关 时间:
2020-04-04 22:23:23
阅读次数:
78
go语言的最大两个亮点,一个是goroutine,一个就是chan了。二者合体的典型应用CSP,基本就是大家认可的并行开发神器,简化了并行程序的开发难度,我们来看一下CSP。 11.1、CSP是什么 CSP 是 Communicating Sequential Process 的简称,中文可以叫做通 ...
分类:
其他好文 时间:
2020-02-03 10:02:58
阅读次数:
74
CSP并发模型 CSP模型是上个世纪七十年代提出的,用于描述两个独立的并发实体通过共享的通讯 channel(管道)进行通信的并发模型。 CSP中channel是第一类对象,它不关注发送消息的实体,而关注与发送消息时使用的channel。 Golang CSP Golang 就是借用CSP模型的一些 ...
分类:
其他好文 时间:
2020-01-26 00:52:03
阅读次数:
122
1 前言 汇总自己用到的高并发模型 2 代码 import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class test { public static void main ...
分类:
编程语言 时间:
2020-01-13 16:38:35
阅读次数:
93
一、Golang并发基础理论 Golang在并发设计方面参考了C.A.R Hoare的CSP,即Communicating Sequential Processes并发模型理论。但就像John Graham-Cumming所说的那样,多数Golang程序员或爱好者仅仅停留在“知道”这一层次,理解CS ...
分类:
其他好文 时间:
2020-01-12 21:42:14
阅读次数:
72
前言 在并发变成中,我们需要关注两个问题: 1. 线程之间如何通信。 2. 线程之间如何同步。 线程之间通信指的是线程之间如何交换信息。线程之间的通信机制有两种:共享内存和消息传递。 在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写 读内存中的公共状态来隐式进行通信。 在消息传递的 ...
分类:
编程语言 时间:
2020-01-05 20:32:43
阅读次数:
107
8. JMM和底层实现原理 8.1 线程间的通信与同步 线程之间的通信 线程的通信是指线程之间以何种机制来交换信息。在编程中,线程之间的通信机制有两种, 共享内存和消息传递。 在 共享内存 的并发模型里,线程之间共享程序的公共状态,线程之间通过写 读内存中的公共状态来隐式进行通信,典型的共享内存通信 ...
分类:
编程语言 时间:
2019-12-30 00:30:20
阅读次数:
106
一般来说并发通信有两种策略:共享数据(内存)和消息传递。 共享数据(内存)适用的场景: 1、速度要求高 2、一个写进程,多个读进程 3、共享内存更适合单机多核的并发编程 共享数据的问题: 1、需要解决条件竞争和线程/进程同步问题(线程锁,互斥量,信号量) 2、大量的上下文切换 基于共享内存的并发模型 ...
分类:
编程语言 时间:
2019-12-29 12:44:40
阅读次数:
77
写在前面 select/poll与epoll select/poll模型工作机理 select/poll模型的局限 epoll模型工作机理 epoll的局限 golang中的epoll golang源码中的sysmon函数 小结 参考写在前面上一篇文章并发模型:Actors与CSP简单... ...
分类:
其他好文 时间:
2019-12-14 00:03:54
阅读次数:
125
CSP ,全称:Communicating Sequential Process ,翻译成中文是,通信顺序进程,最初于Tony Hoare的1977年的论文中被描述,影响了许多编程语言的设计。用于描述两个的ulinix并发的实体通过共享的通讯管道(channel)进行通信的 并发模型。在该模型中,c ...
分类:
其他好文 时间:
2019-10-31 18:42:29
阅读次数:
245