前言 Redis 是一个事件驱动的内存数据库,服务器需要处理两种类型的事件。 文件事件 时间事件 下面就会介绍这两种事件的实现原理。 文件事件 Redis 服务器通过 socket 实现与客户端(或其他redis服务器)的交互,文件事件就是服务器对 socket 操作的抽象。 Redis 服务器,通 ...
分类:
其他好文 时间:
2021-05-24 02:57:52
阅读次数:
0
注意:对象生命周期和依赖注入框架 依赖注入框架可以创建线程安全的,事务性的SqlSession和映射器,并将它们直接注入到bean中,这样您就可以忽略它们的生命周期。 您可能想看看MyBatis-Spring或MyBatis-Guice子项目,以了解有关将MyBatis与DI框架一起使用的更多信息。 ...
分类:
数据库 时间:
2021-05-24 02:38:08
阅读次数:
0
端口复用 端口复用最常用的用途是: 防止服务器重启时之前绑定的端口还未释放 程序突然退出而系统没有释放端口 设置方法 int opt=1; setsockopt(sockfd,SOL_SOCKET,SO_REUSEADDR,(const void*)&opt,sizeof(opt)); 注意事项 绑 ...
分类:
编程语言 时间:
2021-05-24 02:37:50
阅读次数:
0
阻塞队列 阻塞队列: BlockingQueue BlockingQueue 不是新的东西 什么情况下我们会使用阻塞队列:多线程并发处理,A->B 线程池! 学会使用队列 添加、移除 四组API 方式 抛出异常 不会抛出异常,有返回值 阻塞等待 超时等待 添加 add offer() put() o ...
分类:
其他好文 时间:
2021-05-24 02:27:19
阅读次数:
0
一般简单的业务场景不需要创建子线程,但是当有复杂的业务逻辑时,主线程(UI线程)需要等待这个业务处理完毕,例如,在一个单线程中产生一千万一个随机数,这时再拖动鼠标点击窗口会发生卡顿,影响用户体验。需要注意的是,只有主线程才能操作UI窗口,当子线程需要向窗口某个控件传递数据时,只能将数据传递给主线程( ...
分类:
编程语言 时间:
2021-05-24 01:52:13
阅读次数:
0
对TCP/IP、UDP、Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问:1. 什么是TCP/IP、UDP?2. Socket在哪里呢?3. Socket是什么呢?4. 你会使用它们吗?什么是TCP/IP、UDP? TCP/IP(Transmission ...
分类:
其他好文 时间:
2021-05-24 01:16:36
阅读次数:
0
1、在工程文件中加入QT += network 2、服务器除了使用到了QTcpSocket类,还需要用到QTcpSever类 (1)创建QTcpSever对象 tcpServer = new QTcpServer(this); 2)监听端口 tcpServer->listen(QHostAddres ...
分类:
其他好文 时间:
2021-05-24 01:07:32
阅读次数:
0
TCP协议的通讯流程 基于TCP/IP协议的服务器和客户端程序的一般流程,如下图所示: 1、服务器初始化——LISTEN (1)调用socket函数创建文件描述符。 (2)调用bind函数将当前的文件描述符和ip/port绑定在一起。如果这个端口已经被其他进程占用了,就会bind失败。 (3)调用l ...
分类:
其他好文 时间:
2021-05-24 01:03:52
阅读次数:
0
多线程的概述:即同时做多件事情;一个服务器可以让多个人同时访问。 进程的概述:在一个操作系统中,每个独立执行的程序都可称之为一个进程,也就是“正在运行的程序”。 在以上图示中,在一个程序中多个线程执行图,看似同时进行,其实是由CPU调度,CPU的运行速度很快,所以看起来像是同时执行的。 在Java中 ...
分类:
编程语言 时间:
2021-05-24 01:03:30
阅读次数:
0
基础 进程 一个进程包括由操作系统分配的内存空间,包含一个或多个线程。一个线程不能独立的存在,它必须是进程的一部分。 一个进程一直运行,直到所有的非守候线程都结束运行后才能结束。 线程的生命周期 新建状态 一个新产生的线程从新状态开始了它的生命周期。它保持这个状态直到程序start这个线程。 就绪状 ...
分类:
编程语言 时间:
2021-05-24 00:07:10
阅读次数:
0