一个进程至少拥有一个线程,一个线程只属于一个进程。
进程是拥有资源和调度的基本单位,线程是调度的基本单位。
进程独立拥有内存,线程共享所属进程的内存。
ORACLE在windows上也是多线程。
传统的unix系统,早期没有提供多线程,只有多进程。linux是最近的版本才加入多线程支持,以前一直都是多进程。windows很早就支持多线程,本地应用大部分也是多线程。因此oracle在windows上一直都是多线程,在unix上才是多进程。多进程的好处是,一个进程崩溃不会影响其他进程,多线程的好处是不需要共享内存这样的手段来访问数据库缓冲区。mysql很可能是从windows发站起来的,pg和oracle都是最早从unix发站起来的,因此前者是多线程,后两者是多进程。
最根本的原因就如方圆说的,主要是当年 *** 作系统对线程支持不给力,而MySQL是特例,因为开发者喜欢挑战(不过事实上,那个时候的线程支持已经基本完善了。MySQL后于Oracle和POSTGRES)
希望能帮到您!
这些并发,可以通过增加应用服务器来达到,缓存可以使用 "System.Web.Caching.Cache"来增加,由于目前不知道增加这些并发和缓存的作用,所以下面只能列举常用的方法给你哦!
一、缓解数据库读取压力这个缓存机制使用的是.Net本身提供的缓存功能,System.Web.Caching.Cache
这个方案可以解决一般访问量不是很大的站点的需求,更高一级的,可以通过增加Web园工作进程来达到提升性能的需求,而且这个方案里面,已经解决多进程下缓存同步的问题。
更高层次的缓存只用到内存数据库如:Redis Memcached ...
由于增加了缓存服务,可以解决大部分高并发访问需求。
二、缓解Web服务器压力1 增加公用资源文件访问CDN (将 js pic 这些站点必须的文件采用公用CDN)
2 使用单独的文件服务器
3 增加web服务器进行负载均衡设计
三、缓解数据库压力数据库读写分离处理
--------------------------
请采纳!
1、多进程不一定优于多线程2、共享内存没有问题
3、Linux上的话,进程间共享数据可以用D-Bus,更可靠而且简单。D-Bus也是广播的。
如果要考虑高可靠性的话,那么采集程序可以单独一个进程,然后通过MOM,如ActiveMQ之类的用持久方式传送数据,可以广播也可以点对点,也支持分布式。监听程序两个,一个显示一个保存至数据库。这样的话只要考虑采集程序的高可靠性就可以了,因为如果采用持久方式发送数据的话,对方没有接收到数据的时候是会保存下来的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)