进程 进程状态(新建、就绪、运行、阻塞、终止) 进程通信方式(信息交换) 1.共享存储(基于数据结构的共享【速度慢,限制多】、基于存储区的共享) 需要互斥访问共享空间(P V操作) 2.消息传递(直接通信方式、间接通信方式) 3.管道通信 大小固定的缓冲区、半双工(单向传输)、互斥访问管道(写满才能 ...
分类:
其他好文 时间:
2019-08-25 00:50:33
阅读次数:
82
当多个线程访问共享数据的时候,多个线程之间是彼此不可见的,此时就会出现线程安全问题,但是我们知道使用synchronized关键字进行加锁实现同步是可以解决问题的,但是这种方法的效率比较低。 volatile的作用就是多个线程访问共享数据的时候,在内存中的共享数据对多个线程彼此是可见的。相较于syn ...
分类:
其他好文 时间:
2019-08-19 13:22:47
阅读次数:
151
并发模型 常见的并发模型一般包括3类,基于线程与锁的内存共享模型,actor模型和CSP模型,其中尤以线程与锁的共享内存模型最为常见。由于go语言的兴起,CSP模型也越来越受关注。基于锁的共享内存模型与后两者的主要区别在于,到底是通过共享内存来通信,还是通过通信来实现访问共享内存。由于actor模型 ...
分类:
其他好文 时间:
2019-08-18 19:39:03
阅读次数:
86
有项目要求使用对方本地管理员访问访问对方D盘,网上找到一段API,刚开始可以使用一段时间,升级到1903就失效了,一脸懵逼啊 大神链接 ...
队列queue 多应用在多线程中,对于多线程访问共享变量时,队列queue是线程安全的。从queue队列的实现来看,队列使用了1个线程互斥锁(pthread.Lock()),以及3个条件标量(pthread.condition()),来保证了线程安全。 ?self.mutex互斥锁:任何获取队列的状 ...
分类:
编程语言 时间:
2019-08-13 00:26:11
阅读次数:
111
所谓的临界区:是指进程中的一段需要访问共享资源并且当另一个进程处于相应代码区域时便不会被执行的代码区域对于临界区的管理的必须要满足一下的四个要求:互斥:同一时间临界区中最多存在一个线程Progress:如是一个线程想要进入临界区,那么它最终会成功有限等待:如果一个线程i处于入口区,那么在i的请求被接... ...
分类:
编程语言 时间:
2019-08-10 17:06:30
阅读次数:
82
在分布式环境下,特别是微服务结构的分布式系统中, 一个软件系统调用另外一个远程系统是非常普遍的。这种远程调用的被调用方可能是另外一个进程,或者是跨网路的另外一台主机, 这种远程的调用和进程的内部调用最大的区别是,远程调用可能会失败,或者挂起而没有任何回应,直到超时。更坏的情况是, 如果有多个调用者对 ...
分类:
其他好文 时间:
2019-08-08 23:10:13
阅读次数:
123
锁的概念 锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁可以防止多个线程同时访问共享资源(但有些锁可以允许多个线程并发的访问共享资源,如读写锁)。 在JDK1.5之前,Java是通过synchronized关键字实现锁功能的:隐式地获取锁和释放锁,但不够灵活。 在JDK1.5,java.u ...
分类:
编程语言 时间:
2019-07-28 13:37:05
阅读次数:
90
1.什么是多线程? 多线程是为了使得多个线程并行的工作以完成多项任务,以提高系统的效率。线程是在同一时间需要完成多项任务的时候被实现的。 2.了解多线程 了解多线程之前我们先搞清楚几个重要的概念! 如上图所示:对我们的项目有一个主内存,这个主内存里面存放了我们的共享变量、方法区、堆中的对象等。 3. ...
分类:
其他好文 时间:
2019-07-18 12:02:26
阅读次数:
121