-
Linux/Unix分配进程ID的方法以及源码达成
所属栏目:[教程] 日期:2021-11-20 热度:179
在Linux/Unix系统中,每个进程都有一个非负整型表示的唯一进程ID。虽然是唯一的,但是进程的ID可以重用。当一个进程终止后,其进程ID就可以再次使用了。大多数Linux/Unix系统采用延迟重用的算法,使得赋予新建进程ID不同于最近终止进程所使用的ID,这主要是[详细]
-
用Lua达成插入、删除和查找时间复杂度为O(1)的集合
所属栏目:[教程] 日期:2021-11-20 热度:115
利用下面代码可以定义一个集合S,对该集合所有的操作,比如插入、删除元素和查找元素都是O(1),代码如下: function newset() local reverse = {} --以数据为key,数据在set中的位置为value local set = {} --一个数组,其中的value就是要管理的数据 return[详细]
-
关于Lua与C数据通信的栈深入认识
所属栏目:[教程] 日期:2021-11-20 热度:171
Lua栈概述 我们知道Lua是一种嵌入式语言,所有的Lua程序最后都需要通过Lua解释器(即Lua虚拟机)把其解析成字节码的形式才能执行。 一方面,我们可以在一个应用程序(拥有主动权)中嵌入Lua解释器,此时使用Lua的目的是方便扩展这个应用程序,用Lua实现相应[详细]
-
MySQL 以及 Python 达成排名窗口函数
所属栏目:[教程] 日期:2021-11-20 热度:194
这里,我用MySQL 以及Python 分别实现了rank 窗口函数。 原始表信息: t_girl=# d group_concat; Table ytt.group_concat Column | Type | Modifiers ----------+-----------------------+----------- rank | integer | username | character varying(20) |[详细]
-
Python 多线程两种达成方式
所属栏目:[教程] 日期:2021-11-20 热度:81
目前Python 提供了几种多线程实现方式 thread,threading,multithreading ,其中thread模块比较底层,而threading模块是对thread做了一些包装,可以更加方便的被使用。 2.7版本之前python对线程的支持还不够完善,不能利用多核CPU,但是2.7版本的python中已[详细]
-
#和##在宏替换中的价值
所属栏目:[教程] 日期:2021-11-20 热度:185
#include stdio.h #define f(a,b) a##b #define g(a) #a #define h(a) g(a) int main() { printf(%s/n,h(f(1,2))); printf(%s/n,g(f(1,2))); return 0; } 首先需要了解#和##的意义。 # 将右边的参数做整体的字符串替换。 #define g(a) #a 则g(hello world) h[详细]
-
C++ 成员函数 回调函数的达成
所属栏目:[教程] 日期:2021-11-20 热度:95
1.回调函数的说明: 在进行软件开发的过程中,常会用到一些声明为CALLBACK的函数,这些函数就是回调函数。使用回调函数可以改善软件的结构、提高软件的复用性。比如,在一个规模较大的软件项目中,可以将一些资或相对独立的处理模块封装到动态连接库(DLL) 中,然[详细]
-
二分查找法-Java达成
所属栏目:[教程] 日期:2021-11-19 热度:199
二分查找法就是对一个从小到大排好序的数组中寻找一个数val,先用待找的数val和中间值比较,如果比中间值大,那么在中间值右边寻找;如果比中间值小,那么在中间值左边寻找。一直递归下去。知道找到val。如果没找到,则输出在序列里面没有相关的数据。 packag[详细]
-
C++ 虚函数经典深入介绍
所属栏目:[教程] 日期:2021-11-19 热度:111
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有多种形态,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来[详细]
-
单链表基本操作概括
所属栏目:[教程] 日期:2021-11-19 热度:137
链表基本概念: 链表:线性表的链式存储。 数据域:存储数据信息。即数据。 指针域:存放下一节点的位置信息。即该指针指向下一节点。 单链表:每一个节点node:一个数据域 + 一个指针域。 头节点: 1、数据域可以存放线性表长度等公共信息。 2、指针域,指[详细]
-
Java达成链式存储的二叉树
所属栏目:[教程] 日期:2021-11-19 热度:74
二叉树的定义: 二叉树(BinaryTree)是n(n0)个结点的有限集,它或者是空集(n=0),或者由一个根结点及两棵互不相交的、分别称作这个根的左子树和右子树的二叉树组成。 二叉树的遍历方式主要有:先序遍历(NLR),中序遍历(LNR),后序遍历(LRN),和层次遍历。 注[详细]
-
Java达成线性表-顺序表示和链式表示
所属栏目:[教程] 日期:2021-11-19 热度:127
顺序表示和链式表示的比较: 1.读写方式:顺序表可以顺序存取,也可以随机存取;链表只能从表头顺序存取元素; 2.逻辑结构与物理结构:顺序存储时,逻辑上相邻的元素其对应的物理存储位置也相邻;链式存储时,逻辑上相邻的元素,其物理存储位置则不一定相邻[详细]
-
深入认识进程间通信之共享内存
所属栏目:[教程] 日期:2021-11-19 热度:71
共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式。是针对其他通信机制运行效率较低而设计的。两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。[详细]
-
Java字符串缓冲池详解
所属栏目:[教程] 日期:2021-11-19 热度:152
Java的虚拟机在内存中开辟出一块单独的区域,用来存储字符串对象,这块内存区域被称为字符串缓冲池。那个java的字符串缓冲池是如何工作的呢? String a = abc; String b = abc; String c = new String(xyz); 例如上边的代码: String a = abc; 创建字符串的[详细]
-
使用Broadcast达成Android组件之间的通信
所属栏目:[教程] 日期:2021-11-19 热度:183
Android组件之间的通信有多种实现方式,Broadcast就是其中一种。在activity和fragment之间的通信,broadcast用的更多本文以一个activity为例。 效果如图: 布局文件: LinearLayout xmlns:android=http://schemas.android.com/apk/res/android xmlns:tools=ht[详细]
-
深入认识进程间通信之消息队列
所属栏目:[教程] 日期:2021-11-19 热度:155
消息队列是消息的链接表,包括Posix消息队列system V消息队列。有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读走队列中的消息。消息队列克服了信号承载信息量少,管道只能承载无格式字节流以及缓冲区大小受限等缺点。消息队列是随内核持[详细]
-
C++实现一个简单图书借阅步骤
所属栏目:[教程] 日期:2021-11-19 热度:165
总共实现了myDate类,book类,student类,图书借阅记录record类 // #include iostream #include string #include vector #include list #include ctime #include cstdio using namespace std; //主要就基于C库封装了一个获取时间戳的数据成员和相关方法 class m[详细]
-
B树——思路、及C语言代码的达成
所属栏目:[教程] 日期:2021-11-19 热度:119
本人现读本科大二,这学期学习数据结构,老师为我们的期末作业布置一道任选题,而我一直以来都有听说B树是一棵挺神奇的树,所以我选择了它,当然更重要的原因是因为B树的难度最高,我喜欢做有挑战性的工作。同时,我听我基友说他热衷于将自己所学所想分享到[详细]
-
Java关键字畅聊之final
所属栏目:[教程] 日期:2021-11-19 热度:55
final限定变量 如果在指定变量值之后,就不想再改变变量值,可以在声明变量时加上final限定,如果后续撰写程序时,自己或者别人不经意想改变final变量,就会出现编译错误。 如果对象数据成员被声明为final,但没有明确使用=指定变量值,那表示延迟对象成员值[详细]
-
Yii2 达成修改密码功能
所属栏目:[教程] 日期:2021-11-19 热度:81
主要难点: 1、密码加密 YII2对密码加密生成的结果是不同的,即用相同的初始密码在不同时间得到的加密结果不同,所以我们不能用常用的方法去验证密码是否正确(将密码加密后与数据库中的密码相比较)。YII2有自己的加密以及密码验证流程。 加密 $hash = Yii::[详细]
-
介绍Java过滤器
所属栏目:[教程] 日期:2021-11-19 热度:120
一、过滤器概述 过滤器是Java Web三大组件之一,它与Servlet很相似。对于Web应用程序来说,过滤器是一个驻留在服务器端的Web组件,它可以截取客户端和资源之间的请求和响应信息并对这些信息进行过滤。本文将对过滤器的和实现机制和应用进行简单的总结。 当We[详细]
-
畅聊JavaBean
所属栏目:[教程] 日期:2021-11-19 热度:145
一、概述 JavaBean组件本质上是一个Java类,只是这个类的编码要遵循一些约定。用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或[详细]
-
怎样理解阻塞非阻塞与同步异步的差异?
所属栏目:[教程] 日期:2021-11-19 热度:51
阻塞与非阻塞与同步与异步不能简单的从字面理解,提供一个从分布式系统角度的回答。 1.同步与异步 同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication) 所谓同步,就是在发出一个*调用*时,在没有得到结果之前,该*调用[详细]
-
设计模式之介绍器模式 ——初学
所属栏目:[教程] 日期:2021-11-19 热度:100
1、定义 解释器模式(interpreter),给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语句中的句子。 2、解决的问题 如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语句中的[详细]
-
Java中停止线程执行的措施
所属栏目:[教程] 日期:2021-11-19 热度:191
一、暂停或停止线程的理论 在Java编程中,要暂停或停止当前正在运行的线程,有几种方法。对于把线程转入睡眠Sleep状态,使用Thread.sleep()是最正确的方式。或许有人会问,为什么不使用等待wait()或通知notify()?要知道,使用等待或通知都不是很好的方式。[详细]

浙公网安备 33038102330482号