通常保存下载报表有两种方式:一种是在本地驱动器上下载并保存报表;另一种方法是客户端服务器应用程序,报表将存储在远程服务器上。但是,如果无法部署远程服务器,却希望在共享资源上存储报表,该怎么办?用户可以手动将报表转移到Web存储库。FastReport VCL 6为用户提供了一种更方便的方式 - 在云 ...
分类:
其他好文 时间:
2018-10-24 16:07:22
阅读次数:
203
名词解释并发(Concurrency)与并行(Parallelism)并发偏重于多个任务交替执行,而多个任务之间有可能存在还是串行的;并行是真正意义上的同时执行;如果只有一个cpu是不可能真实并行的。临界区共享资源死锁(Deadlock)、饥饿(Starvation)和活锁(Livelock)死锁:多个线程之间相互出现等锁释放的场景,长期处于饥饿状态;饥饿:是指某一个或多个线程因为种种原因无法获得
分类:
其他好文 时间:
2018-10-23 18:01:51
阅读次数:
165
之前遇到一个问题,信号量和互斥锁的区别是什么。一时忘了思考,今天才想到这个问题,翻阅知乎和stackoverflow,理解了之后做简单整理 一、定义 mutex,互斥锁,用于序列化对一部分可重入代码的访问,这些代码不能由多个线程同时执行 semaphore,信号量,将共享资源的并发用户数限制为最大数 ...
分类:
其他好文 时间:
2018-10-20 17:29:13
阅读次数:
176
2.3 GIL(全局解释器锁) Python中的线程是操作系统的原生线程,Python虚拟机使用一个全局解释器锁(Global Interpreter Lock)来互斥线程对Python虚拟机的使用。为了支持多线程机制,一个基本的要求就是需要实现不同线程对共享资源访问的互斥,所以引入了GIL。 GI ...
分类:
编程语言 时间:
2018-10-14 13:42:46
阅读次数:
143
1.1 进程 考虑一个场景:浏览器,网易云音乐以及notepad++ 三个软件只能顺序执行是怎样一种场景呢?另外,假如有两个程序A和B,程序A在执行到一半的过程中,需要读取大量的数据输入(I/O操作),而此时CPU只能静静地等待任务A读取完数据才能继续执行,这样就白白浪费了CPU资源。你是不是已经想 ...
分类:
编程语言 时间:
2018-10-14 11:39:31
阅读次数:
150
一、单例模式概念在GOF的《设计模式:可复用面向对象软件的基础》中是这样说的:保证一个类只有一个实例,并提供一个访问它的全局访问点。1、为什么要使用单例模式1.在整个程序空间使用全局变量,共享资源;2.大规模系统中,为了性能的考虑,需要节省对象的创建时间等等;3.在多个线程之间,共享同一个资源或者操... ...
分类:
其他好文 时间:
2018-10-13 16:55:38
阅读次数:
260
概念(引入原因) 协调进程间的相互制约关系。 临界资源与临界区 一次仅允许一个进程使用的资源称为临界资源(与共享资源对立,有些资源如私有资源,它只能给一个进程使用,不存在临界问题),访问临界资源的那段代码称为临界区。 进程间相互制约关系 同步 直接制约关系,进程A通过缓冲区向进程B提供数据;当缓冲区 ...
分类:
系统相关 时间:
2018-10-08 22:18:26
阅读次数:
250
1.什么是网络操作系统?网络操作系统具有哪些基本功能? 答: 除了实现单机操作系统全部功能外,还具备管理网络中的共享资源,实现用户通信以及方便用户使用网络等功能,是网络的心脏和灵魂。 网络操作系统是网络用户与计算机网络之间的接口,是计算机网络中管理一台或多台主机的软硬件资源、支持网络通信、提供网络服 ...
分类:
其他好文 时间:
2018-10-07 13:45:25
阅读次数:
131
分布式锁是控制分布式系统之间同步访问共享资源的一种方式。在分布式系统中,常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,在这种情况下,便需要使用到分布式锁。 分布式锁是控制分布式系统之间同步访问共 ...
分类:
其他好文 时间:
2018-10-04 21:37:26
阅读次数:
167
ReentrantLock与synchronized一样都可以用来控制多线线程对共享资源的访问。 synchronized关键字是隐式的获得锁,即进入synchronized方法或者synchronized代码会自动的获得锁,离开同步方法或者同步代码块自动释放锁。 ReentrantLock相对于s ...
分类:
其他好文 时间:
2018-10-04 10:04:10
阅读次数:
134