这里是基于epoll+线程池的高并发服务器github源码,相对算是比较稳定的版本了,界面可能有点丑陋,功能都可以使用!也可扩展,读者可自行修改功能或者学习参考!
文件说明和框架介绍
说明一下里面文件的作用吧!
serverHttp文件存的是服务器端的资源文件!程序刚开始调用chdir函数将工作目录切换到该目录下!
epfd.h头文件 用类封装epoll句柄的初始化动作!
func.h...
作者:qq_41681241 发表于 2019/03/16 09:25:58 原文链接 https://blog.csdn.net/qq_41681241/article/details/88584729
阅读:53
继续阅读 >>
畅柯
19/03/16 09:25:58
半同步/半异步模式
半同步/半异步模式中的同步和异步和前面的IO模型中的同步和异步是完全不用的概念。在IO模型中,同步和异步区分的是内核向应用程序通知的是何种IO事件(是就绪事件还是完成事件),以及该由谁来完成IO读写(是应用程序还是内核)。在并发模式中,同步指的是程序完全按照代码序列的顺序执行,异步指的是程序的执行需要由系统事件来驱动。常见的系统事件包括中断 信号等。
按照同步...
作者:weixin_42201172 发表于 2019/02/27 00:34:34 原文链接 https://blog.csdn.net/weixin_42201172/article/details/87958002
阅读:27
继续阅读 >>
田正东
19/02/27 00:34:34
上节我们对于两种事件处理模式做了简要的分析,在这里我们对于两种高效的并发编程方式来进行简单讨论,后序会继续完善
半同步/半异步方式
对于并发编程中的“同步"和"异步"是与I/O模型中的"同步"和"异步"是两种不同的概念
并发模式中,"同步"指的是程序完全按照代码序列的形式来执行的
-"异步"执行需要由系统事件来进行驱动
然而两种方法各有优缺点,异步线程虽然执行效率高,实施性很强,但是相对复杂.
作者:dream0130__ 发表于 2019/02/20 21:05:08 原文链接 https://blog.csdn.net/dream0130__/article/details/87822950
继续阅读 >>
吕海东
19/02/20 21:05:08
注:本篇博客主要内容来源于网络,侵删~
引言
我们假设你已经熟练掌握了CAS,原子变量类等的相关概念。这篇博客中,我们主要讨论原子变量类的使用。
原子变量类
原子变量类共12个,分4组:
计数器:AtomicInteger,AtomicLong,AtomicBoolean,AtomicReference。
域更新器:AtomicIntegerFieldUpdater,AtomicLongFie...
作者:championhengyi 发表于 2018/10/03 13:51:16 原文链接 https://blog.csdn.net/championhengyi/article/details/82931425
阅读:232
继续阅读 >>
董恒毅
18/10/03 13:51:16
注:本篇博客部分内容引用自:Java并发编程:Lock
引言
在Java 5.0之前,协调对共享对象的访问可以使用到的机制只有synchronized和volatile。在Java 5.0之后,增加了一种新的机制:ReentrantLock。ReentrantLock并不是一种替代内置锁的方法,而是在内置锁不再适用的情况下,作为一种可选择的高级功能。
既生synchronized,何生Lock
...
作者:championhengyi 发表于 2018/09/27 15:46:50 原文链接 https://blog.csdn.net/championhengyi/article/details/82868343
阅读:186
继续阅读 >>
董恒毅
18/09/27 15:46:50
为什么需要线程池
在生产环境中,我们不能无限制的创建线程,主要原因如下:
线程创建与销毁的代价并不低;
如果可运行的线程数量多于可用处理器的数量,有些线程将会闲置,大量闲置的线程会消耗系统资源(内存)并给垃圾收集器带来压力;
大量线程竞争CPU也会造成不小的性能开销。
Executor框架
Executor框架在Java 5中被引入,其内部使用了线程池机制。它在java.uti...
作者:championhengyi 发表于 2018/09/13 21:38:05 原文链接 https://blog.csdn.net/championhengyi/article/details/82695378
阅读:327
继续阅读 >>
董恒毅
18/09/13 21:38:05
synchronized 同步方法
方法内的变量为线程安全,实例变量非线程安全。调用关键字synchronized声明的方法一定是排队运行的,如果不是共享资源,那么根本就没有同步的需要。
关键字synchronized取得的锁都是对象锁,而不是把一段代码或方法(函数)当做锁。对于多线程访问同一对象,哪个对象先执行带synchronized关键字的方法,哪个线程就持有该方法所属对象的锁Lock,...
作者:ldx19980108 发表于 2018/08/06 19:22:51 原文链接 https://blog.csdn.net/ldx19980108/article/details/81458620
阅读:262
继续阅读 >>
李猛
18/08/06 19:22:51
注:本文中的部分内容摘抄自他人博客,如有侵权,请联系我,侵删~
本篇博客主要讲述 synchronized 关键字的实现原理以及 JDK 1.6 后对 synchronized 的种种优化。synchronized 的使用不再赘述。
博主目前依旧存在的疑惑
请在阅读完此篇博客之后,帮助博主回答这三个问题:
多线程争夺 Monitor 的具体过程是怎样的?是根据 ObjectMonit...
作者:championhengyi 发表于 2018/04/27 11:38:27 原文链接 https://blog.csdn.net/championhengyi/article/details/80105718
阅读:1731 评论:2 查看评论
继续阅读 >>
董恒毅
18/04/27 11:38:27
并发模式是指I/O处理单元和多个逻辑单元之间协调完成任务的方法1、半同步/半异步模式1.1半同步/半异步模式【1】同步:程序完全按照代码顺序执行;异步:程序的执行需要由系统事件来驱动。常见的系统事件包括中断,信号等。【2】同步线程:按照同步方式运行的线程;异步线程:按照异步方式运行的线程。
异步线程执行效率高,实时性强,但是程序相对负责,难以调试和扩展,不适合于大量的并发。
同步线程效率相
作者:yyc794990923 发表于 2017/07/29 15:58:01 原文链接 https://blog.csdn.net/yyc794990923/article/details/76302124
阅读:1830 评论:1 查看评论
继续阅读 >>
闫钰晨
17/07/29 15:58:01
前言之前的前言
本文作于6月中旬,当时对于很多概念不是很理解,所以写到一半实在进行不下去,通过最近的学习终于理解了一些,赶紧总结记下。
前言
本篇主要总结服务器端开发中的一些基本的框架。
如果你在东区二楼点过黄焖鸡,相信你一定能更好的理解。
正文
I/O模型
主要可以分为同步I/O,异步I/O 两大类。
同步I/O
我们可以理解为,在I/O事件发生后(出现了I/O请求),由应用程序负责处理I/O,或者说,内核向应用程序通知I/O就绪事件。
理论上来说,阻塞I/O(如read一直等待),I/O复用(如select,epoll),信号I/O都是同步I/O。
异步I/O
这俩当然是相反的咯,在I/O事件发生后(出现了I/O请求),由内核负责处理I/O,内核向应用程序通知I/O完成事件,比如Linux下的aio,(还有C++的asio??)
理解
之前对于同步和异步总是很混乱,看过之后才明白,同步I/O是由应用程序来处理,而异步只是应用程序将要做的I/O处理提前告诉了内核,一旦需要处理,内核直接按照之前的要求
继续阅读 >>
康艺杰
17/07/25 09:34:13