DAO层有很多操作其实可以用范式加反射来实现的,所以我就开始构想我的万金油BaseDAO了。BaseHibernateDaoAdvance.javapublic class BaseHibernateDaoAdvance extends HibernateDaoSupport impl...
分类:
编程语言 时间:
2014-08-26 22:39:26
阅读次数:
488
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
1.文件上锁文件系统操作,比较耗时
2.线程上锁,不仅适用于同一进程内各线程之间的上锁,也适用于不同进程之间的上锁。
3.在不同进程之间使用线程上锁要求:
1)互斥锁变量必须存放在由所有进程共享的内存区中
2)必须告知线程函数库这是在不同进程之间共享的互斥锁
/*...
分类:
编程语言 时间:
2014-08-26 13:47:16
阅读次数:
238
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
1.只让你进程调用 accept,然后把所接受的已连接套接字“传递”给某个子进程。
这样做就不用因为所有子进程都调用 accept 而需提供上锁保护
2.父进程必须跟踪子进程的忙闲状态,以便给空闲子进程传递新的套接字
typedef struct {
pid_t ...
分类:
其他好文 时间:
2014-08-26 13:46:56
阅读次数:
154
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
1.为每个客户请求创建一个线程,以取代为每个客户派生一个子进程
/* include serv06 */
#include "unpthread.h"
int
main(int argc, char **argv)
{
int listenfd, conn...
分类:
编程语言 时间:
2014-08-26 13:46:46
阅读次数:
276
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
1.预先创建一个线程池,并让每个线程各自调用 accept
2.用互斥锁取代让每个线程都阻塞在 accept 调用之中的做法
//用于维护关于每个线程基于信息的 Thread 结构
typedef struct {
pthread_t thread_tid; ...
分类:
编程语言 时间:
2014-08-26 13:46:16
阅读次数:
321
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
1.允许多个进程在引用同一个监听套接字的描述符上调用 accept 这种做法并不具备兼容性。
解决的方法是让应用进程在调用 accept 前后安置某种形式的锁(lock),这样任意时刻只有一个子进程
阻塞在 accept 调用中,其他子进程则阻塞在试图获取用于保护 accept...
分类:
其他好文 时间:
2014-08-26 11:36:06
阅读次数:
231
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
下面我会介绍同一个使用 TCP 协议的客户端程序的几个不同版本,分别是停等版本、select 加阻塞式 I/O 版本、
非阻塞式 I/O 版本、fork 版本、线程化版本。它们都由同一个 main 函数调用来实现同一个功能,即回射程序客户端。
它从标准输入读入一行文本,写到服务器上,读...
分类:
其他好文 时间:
2014-08-25 23:00:15
阅读次数:
478
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
这是一个简单的回射服务器程序。它将客户发送的数据读入缓冲区并回射其中内容
下面我会介绍同一个使用 TCP 协议的回射服务器程序的几个不同版本,分别是 fork 版本、select 版本、poll 版本、多线程版本
fork 版本:为每一个客户连接派生(for...
分类:
其他好文 时间:
2014-08-25 22:59:15
阅读次数:
447
1.迭代 TCP 服务器总是在完全处理某个客户的请求后才转向下一个客户。
2.从进程控制角度看迭代服务器是最快的,因为它不执行进程控制。
/* include serv00 */
#include "unp.h"
int
main(int argc, char **argv)
{
int listenfd, connfd;
void sig_int(int), web...
分类:
其他好文 时间:
2014-08-25 22:55:34
阅读次数:
199
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
1.传统并发服务器调用 fork 派生一个子进程来处理每个客户
2.传统并发服务器的问题在于为每个客户现场 fork 一个子进程比较耗费 CPU 时间。
/* include serv01 */
#include "unp.h"
int
main(int argc,...
分类:
其他好文 时间:
2014-08-25 22:55:25
阅读次数:
202